Skip to the main content
Skip to the entry’s beginning
First published on .

rangifer’s diary: pt. lxxx

Welcome to the 80th entry of rangifer’s diary!! Like the previous entry, this is a special entry, albeit for different reasons…

This is… the biggest entry of rangifer’s diary ever, and this took me approximately one æon to complete from start to finish!!!

Getting cervid a new helm

My pure STR bishop cervid has been using the same 13 STR, 31 DEX zhelm since… well… she was about level ≈55. Now, 31 DEX is pretty respectable, and the main reason that I’ve been using the same zhelm for so long is the rather… personal story behind it. That being said, 13 STR is the worst possible STR (discounting the possibility of Chaos Scrolling), so I’ve been wanting a replacement for a while now. The choice is obvious: a Scarlion Hat! Trouble is, I gotta do the Scarga prequests first.

Luckily for me, I already had most of the ETC items necessary for the various quests in this questline. But I still had to do all of the killing, so I headed to the Fantasy Theme Park to whack some Vikerolas:

cervid vs. Vikerolas

…And some (Doom’d) Booper Scarlions:

cervid vs. Booper Scarlions

…Some Galloperas (better known as “Gallos”; not to be confused with the Latin/Romance term meaning “rooster”):

cervid vs. Galloperas

And after all of that whacking — quite a bit of whacking, I must say! — it was time to finish things by recovering those little thingumabobs riding on the backs of the Rodeos:

cervid vs. Rodeos

Thankfully, Rodeos are not quite as tough as the other monsters that I’d been fighting, so this didn’t take too long. Plus, the Rodeo map isn’t part of the Fantasy Theme Park region, so I didn’t have to put my graphics settings all the way to the minimum >.<

Just after I had finished up the prequests, I saw a smega from MuscleUncle (*Uncle) announcing the sale of some Scarlion Hats, so I jumped on the opportunity:

u bs sure scar helm?

Ah, yeah. So, no, I did not get Scarlion Hats and Targa Hats mixed up. The more STR/DEX, the merrier…

I was fortunate enough to come away from this Scarga run with a perfect (i.e. 19⧸17⧸𝑥⧸𝑦 main stats) Scarlion Hat (STR). My luck with the helm DEX 60%s (which, I might add, are a bit pricey…) was a bit mixed at first, and eventually it got to the point where I was at 19 STR, 29 DEX, and 1 slot. I just needed to pass the last slot to make this new helm have the same DEX as my old one (and 6 extra STR, of course), but I wasn’t sure if I had the courage to throw a 70% at it. I vented about my predicament to Taima (Boymoder, Hanyou, Nyanners), and eventually decided to channel my inner not-a-coward and throw a damn 70% at it:

cervid’s new helm

Yay!! Getting stronker!!!

Visiting Neo Tokyo for the first time

For those not already familiar, Neo Tokyo is the collective name for a collection of maps found in the far future of Zipangu. The way that the maps are organised is a tad bizarre, and my understanding is that the GMS (Global MapleStory) version of this region went by a different name: Neo City. In fact, Neo City was apparently part of Ossyria*, divorced from Zipangu entirely. Instead of entering Neo City through the Mushroom Shrine, Neo City was entered via Leafre.

In this version (MapleLegends), you can enter Neo Tokyo by completing a quest given by Asia (who can be found tucked away in Kamuna), who weaves an extremely long-winded and largely incoherent tale about… uhm… I don’t know, something about how there’s a book that has the entire history of Zipangu written in it, down to the level of every movement ever made by every person (in Zipangu) in history, except that Asia is somehow not in the book (despite being a resident of Zipangu). And she finds out that because(?) she’s not mentioned in the book, she’s the only one who has the power to change the history written in the book, and to communicate with outsiders. She somehow finds out that Zipangu is going to be ruined by some kind of robot uprising in the distant future, and she’s the only one who can salvage Zipangu’s future by altering the history written in That One Book™. Of course, altering the contents of That One Book™ is tantamount to rewriting history, and that means the usual trouble with time travel and all that mess. So all of this means that you, the adventurer — and outsider who is conveniently not mixed up with all of this destiny book stuff — are tasked with… something. That’s the gist of it. But Asia isn’t convinced that you’re tough enough to handle Neo Tokyo (what with the scary robots and all that), so you have to gather up some ETCs to show that you are indeed capable of fighting big bad guys.

In any case, I’d never been to any version of Neo Tokyo, and I didn’t have those ETCs (certainly not the oil dropped by the big bad Toad). But I was assisted by Gruzz (Furca) and Harlez, plus the Kacchuu Musha fragment that I already had from killing Kacchuu Musha! So, I was able to enter the place we call NT for the first time:

Entering NT for the first time…

What in the got damn hell, indeed. I’ve never fought monsters quite this annoying, nor have I had the distinct displeasure of being “zombified”!? Now all healing (including from potions) is reduced to half of its usual efficacy??? How am I supposed to be zerked when I’m randomly zombified half of the time? In any case, I talked to the guy in this first map, and did his quests:

rusa and Gruzz @ NT

Naturally, the quests ask for bespoke quest-only ETCs, so you can’t buy your way out of this nonsense. Also, just like Asia’s dialogue, this Ponicher guy loves to blab on, with endless dialogue boxes. The problem is, this map actually has monsters on it (and they fly, too), so I didn’t get to read any of it. Instead, I just furiously mashed my keyboard to get through the dialogue as quickly as possible, while Gruzz tried to protect my now-defenceless (as you can’t use potions while NPC chatting) body. Eventually, and with a lot of help from Gruzz, I collected all of these bespoke ETC items, and I was brought to the next map in this subregion of NT (which is, by the way, “2100 Odaiba”, i.e. Odaiba in the year 2100 AD):

2100 Odaiba

It is fun (if you can call being in the same map as OverLords and AfterLords “fun”) to romp around in a post-apocalyptic Japanese artificial island, but this is actually where my NT journey ends — just as quickly as it started. At this point, the only way to progress (AFAIK) is to fight a superbig superbad guy (Bergamot or something? I don’t know), so I’m gonna need to come back in like… 30 levels. -_- NT is, after all, the highest-level content in MapleLegends, I think. Except Pink Bean, or something. I’m not really sure.

Footnotes for “Visiting Neo Tokyo for the first time”

*See pt. lxviii of this diary, where I talk about what is included in the massive continent that is Ossyria.

cervine on the home stretch

My I/L magelet cervine has been closing in on level 120, so I’ve been paying special attention to grinding and questing on her. Speaking of questing, in past diary entries, I did some of the Magatia questline (my favourite questline) on cervine. Welp, it’s time to polish that questline off:

cervine on the home stretch~

cervine vs. Homunscullo

That’s right. Take that, Homunsculler! Gimme yr blood!! Once I took the Homunsculler Blood to Alcaster, he had me hunt down those other three stones and put them into the Black Magician’s special-sauce trigram.

For the Magic Stone of Trust, I needed to hunt down some D. Roy:

cervine vs. D. Roy

And, lucky for me, I already had a Magic Stone of Honesty from the Homunculi that I’d killed earlier in the questline. So I just had to put the stones into said trigram. Of course, doing so means actually walking to the trigram… through treacherous, unlit jumpquests…

cervine falling on the way to the Black Magician’s Lab

This was not the only time that I fell while trying to get to the Black Magician’s Lab -_-

Okay, there we are: the lab. Just gotta put the stones into the trigram in the correct order…

cervine completes the trigram

And huzzah! Magatia is saved!! Again!!! I don’t know why I keep having to save Magatia over and over again, but it’s pretty fun, so I won’t complain.

Anywho, now that I’m done with all the quests that have decent rewards, I guess I’ll head back to CDs

Welcome to CDs!

I did some CD grinding with Taima (Nyanners, Hanyou, Boymoder)*:

culo de pollo

Including an incident in which I got to 99.99% EXP and waited for Taima to return (so that I could make another dumb “chicken butt” joke), only to look over a little too late, after Taima had already killed a few CDs and unwittingly levelled me up:

cervine hits level 118~!

And with not only Taima, but also INTlaw Lvl1Crook (Level1Crook, xXCrookXx, Macer, Lanius, Sangatsu, Ichigatsu):

cervine hits level 119~!

Level 119!!! So close…

So, I came back to CDs later on, to grind my way to 99.98% EXP. Partway through my sadgrinding session, a mysterious man came along, B>Leech…

Selling leech for the first time…?

So, yeah, I did in fact sell one (1) hour of CDs leech to a stranger, as a level 119 I/L magelet. It truly is a bizarre world that we live in…

Footnotes for “cervine on the home stretch”

*¿Adivina qué? is a literal translation into Spanish of the English guess what?, so don’t take it too seriously. Also, culo is probably a bit more vulgar than the English butt (cf. English ass), but whatever, it means the same thing anyways.

cervine is an archmagelet.

And now, for the moment you’ve all been waiting for… :)

cervine’s level 120 party!!! You can watch a video of the party (including the speech that I gave) on the Oddjobs YouTube™ channel!:

cervine is an archmagelet. <a rel="nofollow noreferrer" href="">


The music heard in the video is cervine’s Theme [CC BY-SA 4.0+]. You can download a recording of cervine’s Theme here, on my bandcamp page. You can also obtain the score (as a MuseScore 3 file) here. I also talk about cervine’s Theme at length, at the end of this diary entry.

There was also a bit of an afterparty in Pianus’s cave, where Taima (Nyanners, Boymoder, Hanyou), Harlez, Level1Crook (Lvl1Crook, xXCrookXx), and I fought this oversized fishy:

cervine’s level 120 Pianus afterparty

…And were later joined by Gruzz and 2sus4u, at which point everyone decided to beat me up and loot my corpse. Kind of a weird (and, I might add, rude) “congratulations on level 120” present, but alright…

Dying and dropping loot

(The three frames making up the image above ended up being stitched together the wrong way for an LTR language; they should be viewed from the right to the left. I can’t be arsed to fix it.)

Well, at least it’s comforting to know that I drop something shiny and valuable-looking when I die…

Getting a Horntail Necklace for cervine

Now that cervine is level 120, it’s time to get her the ultimate magelet item: a Horntail Necklace (HTP)!! Not only does the HTP pack a real punch when it comes to TMA (which is greatly appreciated!), but it also makes a huge addition to the magelet’s already quite high AVOID.

Of course, it’s not quite so easy as “just buying” one. I need a way to get into the Cave of Life (CoL), and a way to sign for the Horntail (HT) expedition. After all, I do have to, you know, actually attend the HT run — even if I’m not doing any of the HT-fighting work. To get into CoL, I need a Dragon Elixir that can turn me into a cornian, so that I can sneak past security. And to sign for the HT expedition, I will need a Certificate of the Dragon Squad (CotDS)! MapleLegends somewhat recently changed both of these things. The Dragon Elixir quest is significantly easier; it doesn’t require finding one of those pesky Manons, nor even the Cornian’s Marrow or the infamous Busted Dagger. I do have to farm some Tough Dragon Skins though:

In pursuit of the ultimate magelet item!!

cervine farming Tough Dragon Skins

On the other hand, actually signing up for an HT expedition has an additional barrier now: everyone has to have the CotDS, or they can’t even sign. Fortunately, the CotDS quest (which I had already completed before, on my darksterity knight rusa, just for the heck of it) has been made somewhat easier as well. In particular, you don’t have to do HTPQ (Horntail Party Quest) anymore, which is great. Needing a team of six people inside of CoL just to do HTPQ and scrounge around for those coloured stone thingies was a real pain in the ass. But I still need those pesky certifications, which means killing:

Damn, if only I had already started this quest before having my level 120 afterparty…

Well, in order to do the first two, I have some prequests to do. Both Papulatus and Zakum have prequests, and I had yet to do any such prequests. Cortical (SussyBaka, CokeZeroPill) also wanted to do the Papulatus prequests, so I headed to Deep Ludi with Cortical and Taima (Nyanners, Boymoder, Hanyou) to start killing some Buffies:

Buffy card get!

…And some Lazy Buffies:

Lazy Buffy card get!

Once we had enough Mysterious Powder from the Buffies to satisfy everyone, it was time to head to Lost Time and collect some mysterious ETCs from the MDTs there. In so doing, I found out something very unsavoury about MDTs…:


I AM epic — so there!!

After a sufficient quantity of MDT-themed torture, we headed to Forbidden Time to hunt for pieces of crack from GPWs. I somehow forgot how the Papu prequests work, and mistakenly believed that we had to fight both GPWs and GSVs to get the pieces of crack. We really could have just gone to GSVs, which are weak to lightning and neutral to ice, unlike GPWs, which are neutral to lightning and immune to ice -_-

Cortical and cervine vs. GPWs

But we got all of the cracks anyways~

Two pieces of crack

And, finally, those Ludibrium Medals!

cervine finishing the Papu prequests

And I fought the Papulatus and took its certification!! But that was actually during Taima’s level 120 party, which is covered in a section below this one.

With the Papulatus prequests out of the way, I also had to do the dreaded Zakum prequests. I figured I’d just do ’em in order, and get it out of the way. So that meant hunting for some keys in some randomly annoying chests (And sometimes, randomly annoying rocks) inside of an active volcano:

cervine finishes the first Zakum prequest

Excellent! A piece of molten lava rock! I’ll just keep that in my pocket. Sounds safe.

And now, for the part that I truly dread: the Zakum jump quest. Now, at this point, I’ve successfully completed the Zakum jump quest many times, over the course of many characters. So you’d think that I’d be pretty good at it by now. And you know what? By my own standards, I think that I have gotten a lot better at it. And yet, I still dread it every… single… time.

So I’ll spare you the images of me sobbing whilst standing upon a tiny rock inexplicably suspended above a bed of magma and surrounded by countless deadly booby traps. Suffice it to say that I did it. Again. And still yet, Lira refuses to take her smug eyes off of that piece of parchment that she’s holding and acknowledge my achievements!:

cervine finishes the second Zakum prequest


I guess I’ll take out my angst on some Miner Zombies. And maybe they’ll give me the gold teefs that I need to complete the final leg of the Zakum prequests:

cervine farming for gold teefs

And, at last, with 30 golden teefies farmed: the Zakum prequests are complete.

cervine finished all of the Zakum prequests!

Almost immediately after I finished the prequests, I saw a smega from a Zakum expedition who were offering to sell a Zakum certificate (amongst other things), so I decided to buy:

Meeting Verdict

Verdict was the bishop of the party, which otherwise consisted of Matsuri members. I didn’t have an issue with buying the cert, because I know that in order to get the cert to drop, you have to not only “poke” (read: deal >0 total damage to) the boss before it dies, but you also have to be in the same party (the “killing party”) as the character who whited. This is unfortunate for someone like me who wants to get a cert without actually contributing, because Zakum parties are customarily six people… and yet, six is the maximum size of a party.

In any case, I did get the cert, as promised:

cervine got the Zak cert!

Oh, right — and the Pianus cert! I guess it’s time to head back to the afterparty cave. Thankfully, I was assisted by marksman xBowtjuhNL, who helped me by dealing much less pathetic DPM than me…:

cervine and xBowtjuhNL vs. Pianus

And with that, my very own CotDS!!!:

cervine obtains her CotDS

Now with the CotDS and a Dragon Elixir (actually two Dragon Elixirs, as the quest awards two of them now) in hand, I could finally buy an HTP. The question remains of whether I should buy it AFK or not. With cervine’s pitiful MAXHP pool, and even more pitiful MAXMP pool (thanks to being INTless for life), I had to guess that I wouldn’t survive HT’s most powerful attacks. And even more so, Horntail is a big fan of dispelling everyone on the map, which would mean that I have to be quick enough to re-cast my buffs (especially MG) in order to survive. So… yeah, nah. I’m buying AFK.

As it turned out, that AFK HTP run was going to cost me a smol fortune: about 90M mesos. Believe it or not, the same person who sold me that Zakum cert also sold me the AFK HTP!:

Buying an AFK HTP

(You can see Verdict in the image above, although she’s largely obscured by a single MTK… god, those things are truly ugly as sin.)

Here I am, nearing the end of the run, getting mass seduced~ Wowee~

Getting AFK mass sed’d…

And I decided to take a screenshot of the drops from the run — looks like they got a MW20!!:

AFK HT drops

You can also see that exactly two HTPs dropped. I picked up the rightmost one, and it had average INT (7) and average LUK (7), but below average on just about everything else. So, I figured that that was a good excuse to reloot, and dropped it to take the other one instead. The other one turned out to be really good, amazing stats on all counts… except for the INT… which was the minimum possible INT (6):

cervine’s clean HTP

Ouf. They asked me, as we were leaving the run, for the stats on the HTP. One runner commented that “2 INT is nothing to sweat about”, and Verdict commented that “well, we know what your real main stat is ;)”. All true, but I can’t help but feel a little betrayed by RNGsus here. I need that damage!! Aaaaa!!! Well, it certainly beats a MoN, so I won’t cry about it.

In any case, time to egg it!:

cervine awakens the dragon!

cervine’s HTP

Still very joocy. :)


It’s time for a little bit of vicloc adventures~ Nearing the end of the X-mas event, I started actually doing some points-grinding on my vicloc dagger spearwoman d34r. After all, she is high enough level to raffle (level ≥70), and having special-sauce event raffle prizes as a viclocker is pretty exciting stuff. At the end of one such points-grinding sesh, I was so close to levelling that I decided to head back to the ol’ TfoG to cap off the level:

d34r hits level 78~!

Level 78~ Very kewl~

Speaking of X-mas event raffling, I did four such raffles on d34r. And this is what I got:

Honestly some really nice pulls! 20 Heartstoppers is insane for vicloc — normally, the most powerful WATK buff is Drake’s Blood* (+8 WATK), not to even mention the AVOID that Heartstoppers give! And the Rudolph’s Shiny Nose, as usual, is completely broken for WACC-starved jobs, with +2 allstat and +50 WACC on average; and d34r is the epitome of WACC-starved… a vicloc dagger warrior!

And on my vicloc clericlet d33r, I decided to do some more napkin murder dungeoneering? For some reason?? d33r already reached her goal level of 54, so you might think she’s retired now… but think again!

d33r, level 54, @epm 5 test

Look at that GM boofs EPH!! 603k!!!

And would you look at that: a level up for d33r :)

d33r hits level 55~!

As you can see, Santa has some lovely gifts (read: ⚠️ FREE SHIT ⚠️) for viclockers who aren’t on his naughty list (read: viclockers who actually log in!!).

I decided to try killing Wraiths (a.k.a. big napkins), to test out if I have what it takes to train in big napkin murder dungeon. And the results are pretty promising!:

Healing Shade

Wait — what’s with that black napkin with a lock on its head? I tried Healing it to death (napkins have a well-known weakness to healing), to find out:

Shade card get!

Gee whizz. A card and a stylish cap with the Victoria emblem on it? Pretty neato.

Oops! Accidentally levelled up again…

d33r hits level 56~!

Footnotes for “Victoria-Island-locked”

*Of course, APQ is available in vicloc, which means Onyx Apples. But we’ve always had a rule (rule 10) that prohibits the use of Onyx Apples (and Victoria’s Amorian Baskets) that originate from APQs that aren’t all-vicloc. So… yeah, we might still have to “lovingly ignore” that rule if we ever hope to do a vicloc SPQ >.<

The marriage of tb303 & Cassandro

I was honoured to attend the wedding of two odd priests: gish priest tb303 (2sus4u, shadowban) and claw priestlet Cassandro (Copo, Bipp, Celim, Fino, Sommer)!

Blessing tb303 × Cassandro

During which, tb303 had to come to terms with the fact that she’d just married a snail:

you married a snail


To help assuage tb303’s newfound gastropodophobia, we decorated the wedding cake real nice-like:

tb303 × Cassandro wedding cake

Admittedly, the snail thing made it a bit awkward. But, you know, snails gotta farm them apples too, right…?

Scarlion & Targa, sittin’ in a tree, K-I-S-S-I-N-G

I did a whole bunch of Scarlion and Targa runs on my darksterity knight rusa, alongside xBowtjuhNL and Harlez, amongst others. I may have had a rocky start when it comes to Scarga (I was super tired and died during my first two Scarlion run attempts…), but I had more luck avenging myself during later runs.

I did a Scarlion run with Gruzz (Furca) and ToasTea, during which we were visited by GA Nightzy:


Scarlion w/ Gruzz, ToasTea, xBowtjuhNL, Harlez, and Nightzy

During which, I got my first Scarlion card :P

Scarlion card get!

I had my first-ever encounter with Targa, alongside #mpqcrew. I was told that Targa is a lot more annoying and deadly than Scarlion, so I had to be sure to stay alive to keep everyone HB’d…

The gang vs. Targa

As it turns out, Targa is indeed far more annoying than Scarlion. As with Scarlion, the first two bodies can barely do any damage. But the third body hits just about as hard as the third body of Scarlion, but hits more frequently. And it does these insane animations where its hitbox gets yeeted across the map:

The gang vs. Targa!

And it can cast control reversal (the debuff with the greenish chomping skull icon with the whirling eyeballs that makes your arrow keys’ effects reversed). And… it sux. Strictly speaking, I don’t think that Targa is actually capable of more per-hit damage than Scarlion is (if it is, the difference is minute), but its deadliness (and annoyingness) comes from its much more aggressive behaviour.

The gang vs. Targa!!

Worse yet, the items that Targa drops are generally a bit worse than those dropped by Scarlion. Except that Targa has something special: Targa Hats! Targa Hats (INT) are important for mages, because they have two more INT than zhelms on average, but the same number of slots. And Targa Hats (LUK) can be useful too, although they are probably the most marginal out of the four types of Scarga hats (including Scarlion Hats (STR) and Scarlion Hats (DEX)). This is because non-odd mages are the only non-odd jobs that use LUK as a secondary stat, and yet, many such mages opt to eschew LUK entirely (“LUKless”). The emphasis on secondary stats is important, because of the existence of Maple Warrior (MW), which grants additional STR/DEX/INT/LUK to the PC based on their base stats, thus encouraging the player to optimise for their secondary stats on their equipment, so that they can spend more AP on their primary stat(s). Nevertheless, Targa Hats (LUK) can still be optimal for:

  • INT-based mages who wear equipment that requires some nontrivial amount of LUK,
  • Thieves that are pure LUK or close to pure LUK (see especially: permarogues),
  • Claw-wielding non-thieves, e.g. besinners,
  • Certain varieties of LUKless thieves, when wielding a claw or a dagger.

And, they’re certainly not bad at all for ordinary thieves, either.

The gang defeats Targa!!!

We did another Targa run. But this time, we were doing Targa for the only reason that really makes sense (other than to try it for the first time): selling the hats! Given that Targa gives the same amount of EXP as Scarlion, and that it has somewhat worse drops, and that it’s considerably more difficult/annoying to fight, and that it drains more of your potions and time, and that it drops Targa Hats (INT) — INT being the most valuable out of the four main stats — it’s no wonder that buying Targa Hat service on the market is significantly more expensive than buying Scarlion Hat service.

This time, we were joined by nightlord BeMyRavebae:

BeMyRavebae, xBowtjuhNL, rusa, and Harlez vs. Targa

As I mentioned before, Targa isn’t really capable of higher per-hit damage than Scarlion, but it does behave much more aggressively. This makes it a lot harder for me to zerk against the third body of Targa (compared to the third body of Scarlion): whereas I can, at this point, zerk probably ≈90%–95% of the time against the third body of Scarlion, I probably can do like ≈30%–40% at absolute best against Targa. And even then, that’s pushing it (a.k.a. a deathwish).

Here, you can see our half-naked buyer looting some hats:

Selling my first Targa helms??

And I did some more fun Scar runs, with Odyssea and Gruzz:

Odyssea, Harlez, rusa, Gruzz, and xBowtjuhNL vs. Scarlion

And with xBowtjuhNL’s guildies Kiarath and doujiang:

Kiarath, doujiang, rusa, Harlez, and xBowtjuhNL vs. Scarlion

As you can see in the image above, I did a @dpm 25 to capture exactly how much I was actually contributing, damage-wise, to the fight. Note that the “Total Damage” is what we’re looking at here — the “Damage Per Hour” and “Damage Per Minute” are spurious, as I wasn’t actually fighting for the entire duration of the capture. Looking at how much HP Scarlion has:

…is 300M HP total. That means that I did one damage out of roughly every ≈11.3 damage dealt to the beast (ignoring healing, which is very slow for Scarlion anyways). That’s obviously less damage than you would expect if we were all contributing an equal amount of average DPM; in the ideal case, I would be dealing one damage out of every 5 damage dealt to the beastie, as we were a party of five. So, in the end, I dealt a factor of roughly ≈2.267 less than the ideal case. That’s honestly not even bad!! Obviously, I don’t expect to be keeping up with my party members — who are not-so-odd-jobbed, and also higher level than me — in terms of sheer DPM. That being said, this is somewhat optimistic, as I did have SE and SI the entire time…

And, finally, I had the interesting experience of participating in a Scarga (Scarlion + Targa) run with the same crew, during which we summoned both of these terrifyingly adorable doll-bosses at about the same time:

rusa, xBowtjuhNL, doujiang, Kiarath, and Harlez vs. Scarga!

rusa, xBowtjuhNL, doujiang, Kiarath, and Harlez vs. Scarga!!

During which, I died, because I’m bad:

I died at Scarga.

Fortunately, someone had their bishop tagging along, so they were able to Resurrect me. And we got Targa Hat buyer Mater the hats that he was promised:

Mater w/ the Scarga helm~

Pqrti qvqsts

I did some KPQing, on my DEX page KPQ/SPQ mule kinds, with some interesting characters. Below, you can see me battling King Slime alongside LvXV (Copo, Bipp, Cassandro, Sommer, Fino, Celim) — a “perma-level-15” archer who retains the same equipment & skills of a level 15 archer, for life — and Furca (Gruzz), a claw pirate (and later, clawslinger)!:

kinds, Furca, and LvXV vs. King Slime

And also with HP page AychPea:

kinds, AychPea, and Furca vs. King Slime

And later, I did some LPQs on my DEX brawler LPQ mule sorts with Furca, STR cleric Godswood, and fellow LPQ mule Sangatsu (Lvl1Crook, Level1Crook, xXCrookXx, Ichigatsu, Macer, Lanius). During which, clawslinger Furca attempted to recreate “rangifer is ranged” [YouTube] during stage 7

Furca is ranged

Here, you can see all of us, fighting the nipple whale:

Furca, sorts, Sangatsu, and Godswood vs. Alishar

Later, we even did some EPQs, joined by swashbuckler Sommer and again by Furca and AychPea:

EPQ krew~

Here, we can see a particularly chaotic snapshot of one fight that we had against BBRG (Big Bad Rock Guy):

sorts, Furca, AychPea, and Sommer vs. BBRG

Later, when AychPea left, it was down to just me (a DEX brawler), Sommer (a swashbuckler), and Furca (a clawslinger)…:

Odd pirate trio

And later, we were instead joined again by STR cleric Godswood:

sorts, Furca, and Godswood vs. BBRG

As you can see above, I’m either getting shot directly in the eye by BBRG, or I’m about to laser-eye the shit out of BBRG. I guess we’ll never know.

And, finally, I did some PPQs on my permarogue panolia, with steelwoman permawarrior Nyanners (Taima, Boymoder, Hanyou, deerhunter, Tacgnol):

panolia, ProbablyCrl, Nyanners, Minior, and Diorama vs. the Lord Pirate

During which, I got a Lord Pirate Chair! For my islander, ozotoceros!! Hooray for chairs that are also Cash Shop items…!

Helping Taima farm Leafre ETCs for the Silver Mane

As STRginner Taima was nearing level 120(!), I asked her if she planned on doing the Silver Mane (level 120 mount) quest, or if she’d already done it. She hadn’t thought about it before, but naturally, it’s a worthwhile investment. It is quite the investment:

But, as a permabeginner, this is as close as it gets to 4th job advancement — plus, the Silver Mane is damn fast! So I set out to help Taima collect the necessary ETC items. First, on my woodswoman capreolina:

capre helping Taima collect Leafre ETCs

Then, remembering that I had to do the Dragon Elixir quest anyways, on my I/L archmagelet cervine:

cervine trying to help collect Leafre ETCs…

This didn’t last very long — as you can see in the image above, I wasn’t actually knocking out very much of the Cornians’ HP pools per Blizzard, and casting Blizzard is quite expensive when you have like 7.3k MAXMP! Plus, I realised that, as mentioned previously, the Dragon Elixir quest doesn’t require Cornian’s Marrow/Busted Dagger anymore…

So I logged onto my darksterity knight rusa to cheaply dispatch the Cornians:

rusa helping collect Leafre ETCs

After we collected all 1.4k(!) ETCs, and after Taima hit level 120 during her 120 party (see below), we found out that the Silver Mane quest is unavailable to beginners -____- #silvermaneforginners


I decided to do a little card-hunting on my darksterity knight rusa, finishing off the last easy Victoria Island set and moving on to the Orbis Tower. The last remaining Vic Island one was the humble Dark Axe Stump:


Dark Axe Stump card get!

And I had already done some Orbis Tower cards, so I finished off the Ice Sentinel set:

Ice Sentinel card get!

…And the Fire Sentinel set:

Fire Sentinel cards get!

Did the Leatty set:

Leatty card get!

…And the Dark Leatty set!:

Dark Leatty card get!

…And then stopped there. Because I realised that I still benefited more from grinding EXP (at bosses, or at ye olde 7F) than from getting Monster Book Ring tiers, which kinda killed my motivation. But I will have to grind out those tiers at some point! :P

In other news, I made a new cape!:

New cape!

This cape is an improvement on my old Crimsonheart Cloak, which was essentially the same, but with 17 STR instead. This cape is not just for rusa, though; I also use it on my daggermit alces.

I still had like five V-day baskets left sitting on various characters, including rusa, so I made a plan to use one with I/L archmage Gruzz (Furca). Unfortunately, my grinding spot of choice is 7F, whereas Gruzz’s would be more like Petris. But Gruzz decided that 7F was the more balanced choice, so away we went:

rusa and Gruzz doing a V-day basket @ 7F

38.6M EPH! 😬 S H E E S H . That one hour of basket was enough to get me just over ⅓ of a level!!

Later, I finished off that level by doing some 7F duoing with shadower Harlez, where I was able to put up some very impressive EPH numbers even without HS!:

rusa hits level 145~!

And, I finished off the next level also at 7F, but this time just sadgrinding:

rusa hits level 146~!

I promise rusa doesn’t just get all of her EXP from 7F, though. Here she is, testing her damage range with an Unripe Apple during a Zakum run:

rusa testing damage range on Unripe Apples at Zak

2340〜3207! Spicy!!

And… again… I finished off another level by sadgrinding at 7F:

rusa hits level 147~!

But then, I had the distinct privilege of doing some 7F duo with a hero by the name of Hidesake, who brought an HS mule along:

rusa at 7F w/ Hidesake

Yeah… 44.2M EPH… who knows if I’ll ever see an EPH number larger than that LOL

To finish off this level, I painstakingly tried to whack 7F mobs with a Red Umbrella while wearing my INT pyjamas:

rusa trying to level w/ INTs

Harlez and xBowtjuhNL were already trying to recruit me for Jiaoceng, so I was getting a little impatient — thankfully, Gruzz came along and helped me get that last 0.005%:

rusa hits level 148~!

And, finally, I levelled up again — but this time, while sadsadgrinding at CDs…:

rusa hits level 149~!

Levelling up with INT pyjamas equipped is a lil easier at CDs. Speaking of CDs…

Back on the TP101 grind

I did a lil bit of CD grinding on my I/L archmagelet cervine, alongside Lvl1Crook (Level1Crook, xXCrookXx, Sangatsu, Ichigatsu, Macer, Lanius) and Taima (Nyanners, Boymoder, Hanyou)…:

Taiwanese shopping mall hell

Testing Blizzard @ CDs

So yeah, Blizzard is pretty broken at CDs! Mine not so much, since I can’t even consistently 1-shot the damn things, but still!!

In other news, my daggermit alces is still at it with the bunny child murder!!:

alces hits level 105~!

I started doing some KM grinding with DEX WK (a.k.a. “sex WK”) Hanyou, and we were briefly joined by INTlaw Lvl1Crook:

alces, Hanyou, and Lvl1Crook grinding KMs

And after a lot of bunny-child slaying with my new DEX warrior friend, I hit level 106~!:

alces hits level 106~!

I did some CD grinding on my swashbuckler hydropotina, as well. Here I am at CDs, with Taima and LoneWolf1600:

hydropotina, Taima, and LoneWolf1600 grinding CDs

And there’s level 93!!:

hydropotina hits level 93~!

I even did CD grinding on my pure STR bishop cervid, and not even the sadsadgrind kind!:

cervid, Taima, and Lvl1Crook @ CDs

While we were there, Taima switched over to her STRmit Boymoder to grind some more CDs, and also to show off some fancy level 1 SM~!:

Boymoder showing off level 1 SM

These shadowy mesos lie in wait, to be used for boss-shredding one day…

And, once everyone fled the scene, I was left to do some sadsadgrinding with these same CDs… and level up cervid to 129~!!:

cervid hits level 129~!

Again with the hoarded V-day baskets: I decided to finally use hydropotina’s, alongside Lvl1Crook, who was nice enough to grind out my basket without the benefit of HS:

hydropotina and Lvl1Crook grinding a V-day basket

After some ¾ or so of my basket was elapsed, Boymoder also came to CDs with us, and used her own basket. So I kept grinding with her to finish off her basket as well, and ended up getting very close to levelling. Boymoder was hiding in the Cash Shop to save the rest of her basket while she was AFK for a bit, so I decided to finish off my level before she came back. That way, I didn’t have to fiddle around with INT pyjamas and all that while Boymoder was trying to use a basket. I got all of my PJs all nice and ready, and went to KMs to finish the level off solo. As I was close to levelling, I decided to kill just one more KM before switching to my PJs, so I did a basic-attack with my spear… and it levelled me >w<

hydropotina hits level 94…!



I had the distinct privilege of doing my first-ever Jiaoceng (武林妖僧) runs — on my darksterity knight, rusa! Back in pt. lxviii of this diary, I did what was technically my actual first-ever Jiaoceng run. But it wasn’t a real run; we were just goofing around and wanted to see what JC’s lair was like. This time, I was joined (many levels later) by shadower Harlez, marksman xBowtjuhNL, I/L archmage Gruzz (Furca), and shadower Bipp (Copo, Cassandro, Sommer, Celim, Fino):

rusa, Harlez, xBowtjuhNL, Gruzz, and Bipp vs. Jiaoceng

And, between the five of us, we killed JC in less than 6.5 minutes!!:

rusa, Harlez, xBowtjuhNL, Gruzz, and Bipp kill Jiaoceng!


As it turns out, Jiaoceng isn’t actually so bad for me, from a… zerking-and-also-not-dying-and-also-not-passing-out-from-exhaustion standpoint. Passing out from exhaustion is somewhat less likely, given that Jiaoceng is defined by the very tight 10-minute timer. Actually having to kill the guy in less than 10 minutes is what makes Jiaoceng so challenging. And although JC is capable of something around the ≈8k damage range per attack, he doesn’t actually manage to hit me with such attacks all that often; some of the attacks do considerably less damage, and my avoidability is enough to dodge a decent number of the attacks entirely, as well. So I can actually maintain a zerk for about ≈98% or so of the time that I’m fighting, which I’m quite satisfied with.

Later, we tried the same thing, but with a reduced party: just me, Harlez, and xBowtjuhNL. I snuck probably half a dozen Heartstoppers in my mouth during the first run, and nearly as many the second run, and we were just so close:

rusa, xBowtjuhNL, and Harlez — so close to trioing Jiaoceng…

(The above screenshot is courtesy of xBowtjuhNL; I couldn’t capture one in time.)

SO close. v_v

I did another trio with Harlez and axe hero 5nortin5peed, in which we barely squeezed through one run! The image that you see below has been edited to crank up the brightness and contrast to ridiculously high levels in comparison to the original image, which was taken as the screen was fading to black as we got kicked out of JC’s lair.

Harlez, rusa, 5nortin5peed barely made it through Jiaoceng…!

If you look closely, you can see that the only thing that JC dropped was a single Elixir… so I guess we weren’t missing out on anything by finishing so late. In our other run, we unfortunately had no chance of making it, due to the untimely death of 5nortin5peed…:

R.I.P. 5nortin5peed…


In more optimistic news, I did some quartet runs with Gruzz, Harlez, and xBowtjuhNL, which allowed us to finish with plenty of time to spare, thanks to Gruzz’s extra DPM!:

Gruzz, rusa, Harlez, and xBowtjuhNL vs. Jiaoceng…

…Easily done!

Getting some EXP w/ capre~

I haven’t been doing much, if any, CDs grinding on my woodsmaster capreolina. Once I grinded my last CD and hit the big 120, I kinda said “peace out cya laters” to compact discs. But as capre inches closer to the big 135, it’s time to get back on that grind again. As many readers will know, the big 135 is “big” because it’s the lowest level at which a fledgling archer may competently SE in the general direction of everyone’s favourite crumbly rock villain. At level 135, capre will acquire the power to make people regret smega’ing “R>SE” by showing up to Zak with max SE and a whole lot of STR. Is this a noble goal to aspire to? Maybe. Do I at least like crumbly rock villain guy? Yes, it’s my favourite boss. Will people stop asking me “135 when?” if I get to level 135? Yes. Do I really just want to level up so that I can put more SP into Hurricane because it’s a funny skill and literally goes “brrrrr”? Also yes.

In any case, I’m still leaving CDs behind. Now that I have Big Crits™ (read: SE), I think I’m ready to repeatedly & tirelessly whack a different, more powerful breed of monster: Galloperas (Gallos)! Sniper Level1Crook (Lvl1Crook, xXCrookXx) had already planned to grind alongside capreolina once my I/L magelet cervine made it to the honourable ranking of archmagelet. So the time is now, and the SE is making Level1Crook’s damage even more impossibly high:

capreolina and Level1Crook grinding Galloperas

Unfortunately I didn’t get any screenshots of Level1Crook goofing off with an Onyx Apple while enjoying capre’s SE. It was galling to see someone 20 levels below me do 60k damage with a single Strafe

After some Gallopera-slaying, capreolina has broken into the 13X levels!!:

capreolina hits level 130~!

Now that capre is level ≥130, she has finally maxed SE. By coincidence — well, only partially coincidence, as channel 6 FM 9 (6-9) is the HQ for the entire Suboptimal/Dream meta-alliance, so we tend to be in channel 6 most of the time — some of the folks from the Dream alliance headed to our Gallos map for a different reason: to fight Scarlion! As it just so happened, they were looking for an archer to SE them… and I had just maxed SE! Of course, capre is still not technically high enough level to to Scarlion/Targa yet: the third and final body of these bosses is level 140 (similar to Zakum or Krexel), so you have to be level ≥135 to get EXP normally. That being said, the first two bodies are lower in level, and in any case, I was excited to try out a Scarlion run for the first time on capre! So I obliged:

capre’s first Scarlion run o_o

It was pretty cool! And I actually got decent EXP — somewhere around ≈4%, I think? I’d definitely do it again, and the Dream folks were grateful for my SE :P

Taima’s level 120 party!!!

I was honoured to attend the epic level 120 party of my good friend and Maple wife Taima (Nyanners, Hanyou, Boymoder, Tacgnol, deerhunter, Numidium, Gambolpuddy, Naganohara, Spagonia, Inugami), the STRginner!!! Taima has been an extremely important person and good friend of mine since almost as long as Oddjobs has been a public guild (see: “cervid × Taima” [YouTube]), and she is as “legitginner” as it gets!! For her big level 120 party, we headed to the Whirlpool of Time to watch Taima level up to a Timer kill. The use of time, timer, etc. here is a pun on the pronunciation of Taima (/ˈtaɪmə/) vs. Timer (virtually /ˈtaɪməɹ/, but non-rhotically /ˈtaɪmə/ in the absence of a linking R) in English. For the occasion of the party, Taima put together a collection of screenshots of herself throughout the ages, from level 0 (literally character creation) onwards! At the end, there are some photos of her freshly-opened Global MapleStory iTCG cards! Fancy!! You can find the images at TaimaStory (archived).

Here’s Taima, at the Whirlpool of Taima, killing Taima and levelling up to level 120~!!!!:

Taima hits the HUGE level 120~!!!

Once she hit level 120, it was time to fulfil her destiny as a true pigginner~:

cervid × Taima-pig

For the occasion (as level 120 is the minimum level to get EXP normally from Papulatus), and because we were nearby anyways, we did two Papu runs to celebrate!:

Taima’s level 120 party: Papulatus fight!

Taima’s level 120 party: Papulatus fight, second body!

While we were waiting to do a second run, we made an inexplicable bench stack and started uncontrollably vomiting:


And although it was quite early in the morning, OmokTeacher (Slime, Thinks) was able to make it in time for the second run~:

world championship!

As a corollary, I was able to get my Papu cert for my I/L archmagelet cervine :3

Congratulations again to Taima on the big 120~ Your legendary journey & determination is an inspiration!! 🤩


Speaking of Taima, I’ve started doing somewhat regular bossing with Taima and Level1Crook (Lvl1Crook, xXCrookXx), each weekend around the scheduled time(s). Here we are, fighting Rāvaṇa (with me on my darksterity knight rusa)!:

Matando jefes

rusa, Taima, and Level1Crook vs. Rav

rusa, Taima, and Level1Crook vs. Rav~

A single Rav run tends to run for roughly ≈25 minutes, so when we get some nifty loot, we really earned it :P

Trio Rav loot~!

Unfortunately, although I have opened quite a few MP1s (Mysterious Pouches 1), I have yet to receive more than one Prestigious Coin from the same pouch… -_-

We were joined by STRginner Cortical for one run:

Taima, rusa, Level1Crook, and Cortical vs. Rav

(It’s hard to really see Cortical in the above image, but at least you can see the cape balloon with sharp teeth.)

Here’s a screenshot of Ravana dying during another run that I did as a trio (if you look closely, you can spot a Vifennis and a Devil’s Sunrise in flight):

rusa, Taima, and Level1Crook kill the Ravana!

After this run, we did another — and we were still thirsty for more, so we went and did Papu as well!:

rusa, Taima, and Level1Crook vs. Papu

During another regularly-scheduled event (the low-level/area bosses event), I joined forces with permapirate Copo (Cassandro, Bipp, Sommer, Celim, Fino) and Cortical to fight some Headless Horsemen, as my fresh new I/L archmagelet cervine~:

cervine, Copo, and Cortical vs. The Headless Horseman

Look at that CL go!!

cervine, Copo, and Cortical vs. The Headless Horseman~

cervine, Copo, and Cortical vs. The Headless Horseman~!

Ahhh… Another headless caballero and his fuchsia mare, vanquished!

I’ve also been doing Capt. Lats with Taima, on my pure STR bishop cervid — below, you can see a screenshot from one such run, for which we were joined by Cortical:

cervid, Cortical, and Taima vs. Capt. Lat

I noticed that every time that I go to Resurrect someone, it’s usually too nervewracking for me to remember (or consider) to take a screenshot. It’s very easy to screw up Resurrections, as the resurrected(s) are often in a position to die immediately after being brought back to the realm of the living. But I remembered this time, during a Capt. Lat duo with Taima:

Resurrecting Taima

During the same session, we went to do the repeatables for Capt. Latanica (i.e. the White Essence quest), and I happened to have my INT gear on hand. So partway through the quest, I decided to try using my INT gear for shits & giggles. Behold, the fabled deergenesis:


Not bad at all!! The damage looks impressive thanks to Slimys being weak to holy, and I actually was getting a roughly ≈80% hit rate against them! We went to GS6 to kill Mr. Anchors, and I tried my Genesis there. Not so impressive; probably more like ≈40% hit rate…

Although my woodsmaster capreolina has had her T10 ring for a while now, I was still pleased to finish her Papu set…

capre finishes the Papulatus set :P

…And even more pleased to get a Papulatus chair for cervid!:

cervid gets the Papulatus chair!

I kind of refuse to fight Papu on cervid, after a traumatising experience of getting instakilled by a dispel (DP) at the same time as a touch attack… Papulatus just wasn’t made for melee mages, who rely on Magic Guard and/or Invincible to survive touch attacks, and yet must straddle the Papulatus Clock just to hit it! But I had cervid tag along for HS purposes (leaving and rejoining the party as necessary to avoid leeching EXP), so she managed to get a Papu chair anyways :P

During a low-level/area boss event, I stumbled across a BF at FP, and Copo decided to hop onto their non-odd shadower Bipp to come kill it! I took capreolina, so that I could stand back with my bow like a coward and never actually touch the beast:

capre and Bipp vs. Bigfoot

capre and Bipp vs. Bigfoot~

In between BFs, I fought an HH alongside Bipp as cervid. You can see my MR going off:

Bipp and cervid vs. HH

And I got to fight Rav on cervid, as well!:

Bipp, cervid, and xBowtjuhNL vs. Ravana

I like using Doom when Rav starts summoning so that I can turn those scary goblins into less scary snails! Does it actually help? Yes. I just lied… maybe. It’s debatable.

Also with Bipp (but this time as rusa), I got to do some Krexelling with the crew (this time, as rusa):

rusa, Gruzz, xBowtjuhNL, Harlez, and Bipp vs. Krexel

It’s always nice to do a big boss just with people whom I know :P While I was there, I did a little @dpm 1 on stoppers:

rusa, @dpm 1 with Heartstoppers @ Krex

114M DPH ain’t half bad~ Also on rusa, I did a pair of Papu runs with Harlez, xBowtjuhNL, and Bulgoki, a shadower whom I met back in OPQ, and who I haven’t had the chance to play alongside in quite a while!:

Bulgoki, Harlez, rusa, and xBowtjuhNL vs. Papu

Bulgoki is actually invisible in this screenshot, thanks to Boomerang Step… But you can see that he’s now a member of Chroma, and thus of Dream (and thus of the Suboptimal–Dream meta-alliance). :)

Contagion’s level 50 party!!

I was fortunate enough to attend the level 50 party of islander Contagion (Without):

Contagion’s level 50 party!

Hitting level 50 is a pretty huge achievement for any islander, and for Contagion, there was something a little extra special. Although it was very unclear if it was even possible to redeem the level-based (level ≤70) rewards from Santa even after the X-mas event officially ended (but Happyville was still temporarily open), Contagion gave it a shot, and was pleasantly surprised! They were able to get another upgrade to their Rudolph’s Toy Hat, which means another +2 to all stats!! While we were there in Santa’s House celebrating, we were paid a visit by GA Nightzy, who came to congratulate Contagion on their achievement:

Nightzy visits the level 50 party

Cortical’s T10 ring party~!

I was also fortunate enough to attend the T10 ring party of STRginner Cortical, who has — as you’d expect for a permabeginner who farmed their own T10 ring — been impressively dedicated to farming cards for quite a while now! Cort decided on their last (300th) set being the crog set. So, with 299 completed sets, and 4⧸5 crog cards, we flew back & forth between Ellinia and Orbis in search of crogs & their cards:

Cortical’s T10 party fighting crogs~

It took just a few tries before the moment of truth…

Resing OmokTeacher for Cort’s T10 party

Cort loots the 1500th card~

Congratulations again to Cortical, the first-ever T10 ring permabeginner who’s never been banned!*

Footnotes for “Cortical’s T10 ring party~!”

*Permanovice (Battlesage, Dreamscapes, Paean, Hanger) was the actual first permabeginner to T10, but was briefly banned due to a false autoban…



ur hair smell nice


cervid × Taima-snail

waskanda forever


“Sex WK”

cervine’s theme

This entry has covered my I/L magelet cervine’s level 120 party. In the past, I’ve done a video (see the Oddjobs YouTube channel) for each 120 party that I’ve had, musically accompanied by a piece written specifically for that character:

cervidSTR bishopcervid’s level 120 partycervid’s Themecervid’s Theme
rusadarksterity knightrusa is a darksterity knight.rusa’s Themerusa’s Theme
capreolinawoodsmastercapreolina’s level 120 partycapreolina’s Themecapreolina’s Theme

…So the time has come to do the same for cervine! While I did of course have each character in mind when I wrote their respective themes, the influence is only on general “feel” of the music. With cervine’s theme, I’m taking the connection a little bit more seriously.

On the one hand, cervine is an I/L mage — as a result, she uses a lot of ice attacks (and lightning attacks). Frigidity and ice are often portrayed musically with the use of high-pitched and crisp sounds, presumably because of the brittle nature of ice, and the association of low and low-mid frequencies (e.g. 50–500 Hz) with “warmth”. For this reason, I’ve chosen a glockenspiel — known for having a clear and high-pitched timbre — as the primary voice of the piece. Furthermore, lightning has an even more obvious acoustic association: thunder. At a moderate distance, thunder tends to sound like low-pitched, violent rumbling; as a result, thunder has occasionally been portrayed in Western classical music with the use of timpani, particularly rolls on said timpani.

On the other hand, cervine is also pure LUK (and thus a magelet). The notion of luck is intimately tied up with the notion of randomness; if the outcome of some situation/experiment/etc. is known in advance, we can’t reasonably say that the outcome is “lucky” or “unlucky”. Therefore, for a situation to have some element of “luck”, it has to have some element of randomness, even if we nevertheless have some information about the likelihood of some (or all) of the outcomes. For example, if a person who passes a 30% scroll is “lucky”, then the person who passes a 10% scroll is “even luckier”; both outcomes are good, and we happen to know that the latter person had only ⅓ of the chance to get their good outcome.

Lucky music

Music that makes use of indeterminacy is called aleatoric (or, aleatory) music. Aleatoric music can be categorised into three kinds:

  1. Music composed of determinate elements, wherein the elements are to be performed in a way (e.g. their order; this is called a “mobile” form) that substantially depends on the choices made by the performer(s). A well-known example is Terry Riley’s In C (1964).
  2. Music composed using indeterminate notation (and/or other communication methods that are indeterminate). Freely improvised music is one example of this kind. In the context of classical musics, this usually implies the use of abstract graphic notation, and/or the prominent use of text. An example of abstract graphic notation is John Cage’s Water Walk (1959); you can see an excerpt of the score here: Excerpt from John Cage’s “Water Walk” (1959)
  3. Music that is written in a determinate form, but composed with the aid of indeterminate processes (i.e. processes that are not fully within the composer’s control). Usually, this is stochastic music, which makes use of stochastic processes to compose music — although, do note that some stochastic music uses stochasticity at performance time, which puts such music somewhat closer to (1.). Stochastic music was essentially pioneered by John Cage, who used the I Ching [易經] as a kind of source of pseudorandomness. Although he was originally critical of it, stochastic music is also often associated with Iannis Xenakis, who used mathematical and physical principles like Brownian motion, game theory, statistical mechanics, set theory, etc. at the core of his compositions.

There’s room for overlap here (some music might satisfy more than one of these definitions), but the cores of these three approaches, respectively, are:

  1. Letting go of the details. Works in this style retain ordinary determinate composition, but don’t attempt to determine every detail of the entire piece. The “missing bits” of the composition can be filled in ad hoc. This is “letting the music be itself”.
  2. Shift entirely (or almost entirely) away from the composer writing the music, and focus on the performers and their creativity, mood, personal interpretations, etc. Pre-composed pieces in this style are hard to think of as truly being “pre-composed” in any sense, because the composition as written has no clear musical content. And freely improvised music is not pre-composed at all, of course. In some sense, (2.) is perhaps a more extreme version of (1.).
  3. Indeterminacy can be used to generate music. In some ways, this pushes the job of the composer “up a level”: instead of always writing the music note-for-note, the composer dictates the structure of the music (typically in a well-defined way), and then lets the indeterminate process do the actual note-for-note composing. Once the music is “generated” in this way, it can then be crystallised into a totally determinate form, e.g. ordinary musical notation, magnetic tape, etc.

The approach that I want to take is, unsurprisingly, (3.). Both (1.) and (2.) rely on performers with some level of agency (e.g. human performers), but I ultimately want to produce a single digital audio recording. This doesn’t actually preclude the use of (1.) or (2.) — it suffices to take a recording of a single performance, and even though playback of such a recording may be totally deterministic, the performance that was recorded was still indeterminate. But the other themes that I recorded for my other level ≥120 characters were written in MuseScore, and then recorded simply using MuseScore’s built-in MIDI-based playback. This is, I think, a pretty appropriate “recording technique” (if you can call it that…) for MapleStory music, and in this case it implies writing music in a way that a computer can read… and computers have no agency!* Plus, I think that (3.) captures the notion of “luck” most appropriately — the indeterminate elements (viz. random number generation, for our purposes) are so far removed from purposeful choice, that we can really call them “pure luck”.

Originally, I considered composing cervine’s theme almost entirely with stochastic elements, taking heavy influence from serialist techniques. This would likely have resulted in something pretty abstruse and alien-sounding, and probably something not quite tonal. Instead, I want cervine’s theme to not be so far removed from the other themes, which have all been tonal, and written using no particularly “advanced” musical techniques other than an understanding of jazz harmony, some unusually intricate rhythms, and some unusual orchestration choices. At the same time, I want to retain a strong sense of stochasticity. With these things in mind — and keeping in mind the writing about “ice/lightning”-themed orchestration above — we can talk about composing cervine’s Theme.

Footnotes for “Lucky music”

*Okay, so, technically we can circumvent this limitation with the use of MIDI controllers to capture live performances. But whatever; I’m not going to do that anyways…

A note (pun intended) on music theory

Music theory is a pretty broad subject, and even casual music listeners will know (or at the very least, intuitively understand) a large number of music-theoretical concepts and principles. However, because we are approaching the subject of composing cervine’s Theme from a Western classical music angle — the perspective of the archetypal “composer” — we’re going to get a little into the weeds with some slightly more esoteric notions originating from Western music theory.

Lamentably, music theory is not taken as seriously as some other subjects; in particular, subjects that are commonly studied in academia with the hope (or promise) of practical application, e.g. mathematics, computer science, anthropology, physics, etc. Presumably as a result of this, the literature on music theory/criticism (of which there is actually quite a bit) is difficult to find, obscure, and usually out of print. Furthermore, apart from the most primitive music-theoretical notions, there tends to be far less consensus on terminology, notation, conventions, and even the nature of entire theoretical constructs, than there is in a more widely-studied subject like category theory*. As a result of both of these things, my footnotes will mostly be clarifications of terminology, and not so much citations to relevant literature…

I’d also like to clarify a common misconception about music theory. On the whole, music theory is much more commonly descriptive than it is prescriptive; while prescriptive music theory certainly exists, it’s largely confined to the actual act of music composition (you can’t “describe” a piece that you haven’t actually written yet!), and occasionally to music criticism. Furthermore, many of the texts on music theory that are written prescriptively (outside of the aforementioned compositional concerns and concrete music criticism) can be interpreted in a descriptive way, by simply rephrasing charged wording. This puts music theory in an awkward position somewhere between aesthetics and linguistics (where the “language” of study is musical language).

Footnotes for “A note (pun intended) on music theory”

*You know that your subject is borderline occult when it’s less widely-studied than category theory…

Composing cervine’s Theme

The big picture

The basic idea here is to have a melody that appears in successive mutations (mutated forms; I’m not using the term “permutations”, in order to avoid confusion with the strict sense thereof), with only the first variation being composed, and the mutations being randomly generated from it. Then, the rest of the piece will be composed around this sequence of mutations, to accommodate it, harmonise with it, justify it, etc.

The subject

Composing the theme starts with composing the subject (in the music-theoretical sense of “main theme”). As mentioned above, I want the “leading” instrument in this orchestration to be a glockenspiel, so the prime form* of the subject will be a single melody written for glockenspiel. The melody should appear tonal in nature — no tone rows here! In fact, keeping the melody completely diatonic (restricted to a particular diatonic scale) is potentially a strong choice here, but a not-strictly-diatonic melody is okay too, as long as the non-diatonic (read: outside of the key) notes reinforce the tonality. The stochastic techniques that we apply will naturally spice it up, so we don’t need to go wild with the pitch choices here. Also, the subject should be relatively short (viz. just a measure or two); randomly mutating the subject will provide further melodic material, so a long-winded melody will likely only cause problems.

Of course, because we want this to be tonal, we need to pick a key! I expect the piece as a whole to visit multiple tonal regions†, but we are starting somewhere, and that “somewhere” is the key that the prime form of our subject resides in. For no particular reason, I think that a key with a lot of sharps would be suitable. I’m not experienced in writing for glockenspiel, but it’s laid out and tuned like a piano anyways, so whatever key I choose shouldn’t be an obstacle. And anyways, this will all be played by a MIDI-controlled softsynth, not actual performers with real instruments… So B major (or G♯ minor, etc.) it is! That’s five sharps.

We’re not going to get fancy with the time signatures (at least, not yet…?), so 4⁄4 (a.k.a. “common time”) should do the trick.

Oh, and it should be catchy! Memorable! I suppose that’s the hard part…

Here’s what I came up with:

Prime form of the subject of “cervine’s Theme”

In ABC notation
T:Prime form of the subject of “cervine’s Theme”
I:linebreak $
B/dG/- Gc/B/- B/A/F BG | B/AG/ A/d^B/- BA/G/- G/A/=B/A/

(Note that this is written for glockenspiel, so it sounds two octaves higher than written.)

As you can see, I just couldn’t help myself… So there is a non-diatonic note (just one!): the B♯ in the second measure. When I started writing the melody, I didn’t want to restrict myself to any particular mode (and as just a bare melody, there is little harmonic context anyways), so long as the mode (or modes…?) was relative to B major — that is, sticking with the five-sharp key signature. It ended up being basically G♯ minor (or G♯ aeolian, if you prefer; again, scant harmonic context), and so that rogue B♯ in the second measure was simply borrowed (see also: Picardy third) from the parallel major: G♯ major, a theoretical key that would be explicitly spelled as A♭ major. The mode is very nearly spelled out by the first three notes of the melody: B, D♯, G♯; the third, fifth, and root of a G♯ minor chord, respectively.

Choosing a tempo

Also note that the tempo is specified as “♩ = 108”, a.k.a. 108 quarter notes per minute, a.k.a. 108 BPM (counting a quarter note as the beat). Originally, I considered using 120 BPM, which tends to be the default tempo in most music software due to having exactly two beats per second. Furthermore, 120 is just a really convenient number — it’s about as far away as you can get from being prime:

However, I decided to go with 108, because it still retains some of these nice properties:

And, it has some other nice properties that 120 lacks:

3-smoothness is really closer to what I care about, because as we’ll see below, some of our random mutations will mutate note durations by multiplying them by integer multiples of ½ and/or ⅓. The fact that 120 is divisible by 5 is nice, but ultimately unrelated to what I’m looking for. Ideally, we cram as many “2”s and “3”s into the number’s prime factorisation as possible — for example, 22 ⋅ 32 = 36. Unfortunately, 36 is too small — anything below ≈50 BPM is (in my opinion) too slow for a pulse that you can get a really good “feel” of. On the other hand, if we increment both of these exponents by 1 (to 3), we get 23 ⋅ 33 = 216. That’s… more reasonable, but it’s a pretty “up”‡ tempo that I generally only hear in bebop (and hard bop) tunes. If we allow the exponents to be unequal (but still within 1 of each other), we can get 23 ⋅ 32 = 72, or 22 ⋅ 33 = 108. These are more reasonable tempi, and I went with the faster of the two, as 72 BPM is a little too adagio for my taste.

Picking apart the melody

It’s worth taking a close look at the prime form of the subject, as written, before I start mangling it.

Melodic contour

Concerning the pitches that are used, the ambitus is a major sixth, and the register/range is [F♯6, D♯7]. This is a pretty modest and reasonable ambitus; typical ambiti for vocal-like lines tends to be within an octave or so, so we’re all good here. And I wrote everything within the five lines of the stave, so that bodes well for keeping things within a reasonable register for the glockenspiel.

Also, I haven’t really worked with Parsons codes before, so let’s do a simple gloss of the melodic contour by writing a Parsons code:


The use of round brackets here is nonstandard; I put in the (u) at the end because the melody starts a repeat by ascending in pitch (from A♯6 to B6).

Below, you can see an ASCII art visualisation of the contour given by the above Parsons code:

  *   *
 / \ / \
*   *   *
          *   *   *       *
           \ / \ / \     / \
            *   *   *   *   *       *  (*)
                     \ /     \     / \(/)
                      *       *   *   *
                               \ /

Parsons codes were originally developed to classify themes (musical subjects), for A Dictionary of Tunes and Musical Themes (1975), by its author Denys Parsons. Parsons supposedly⸸ found that *uu was the most common three-character prefix of the Parsons codes of all themes studied, showing up in 23% of all themes (regardless of genre), significantly more than the ⅑ = 11.111…% that you’d expect if all possibilities appeared equally often. The melody that I’ve written here doesn’t fall into that category of 23% (it falls into the *ud category), but I found out that a Parsons code search engine actually exists on the Internet:!

I searched for the Parsons code that you see above (but with the (u) omitted) on musipedia. As expected, there are no exact matches for the full code (the code is just too long), but I did get two exact matches with prefixes of my code: a theme from Shostakovich’s “24 Preludes and Fugues” (Op. 87; 1950–1951), which matches the prefix *ududdd; and the beginning of the refrain of David Bowie’s “Starman” (1972), which matches the prefix *ududddud. The Shostakovich melody appears within the 13th piece of the set, which is in F♯ major (the set as a whole covers all 24 major and minor keys). The Bowie melody is sung to the lyrics “There’s a starman waiting in the sky”. Kind of a weird pair of musical pieces, but hey — that’s what I get for throwing a random Parsons code into the æther…

In any case, the subject I’ve written has more downs than ups, but not by much: 11 ds, and 9 us (only 8 us if you don’t count the bracketed one). And the melody is very… “fluid”, if you will, in the sense that there are no rests, and no rs (no two adjacent notes are of the same pitch).

Looking a little more closely at the contour, we can see that the melody that I wrote is actually reasonably well-behaved (in a classical sense). Instead of just writing the contour in terms of going up, going down, or staying at the same pitch, we can write it in terms of interval sizes. If we do this by writing each interval as an integer number of semitones (see also: integer notation), we get:

⟨4, −7, 5, −2, −1, −4, 5, −3, 3, −1, −2, 2, 5, −3, −2, −2, 2, 1, −1(, 1)⟩.

We can simplify a little bit by categorising these into steps and leaps, while retaining the signs:

⟨L, −L, L, −S, −S, −L, L, −L, L, −S, −S, S, L, −L, −S, −S, S, S, −S(, S)⟩.

We can compare this to what Johann Joseph Fux wrote in his seminal Gradus ad Parnassum (1725) (I know, a little old, but his teachings are still widely reproduced!) about melody writing in the context of species counterpoint:

Not bad! My melody could almost pass for a musical exercise… Do note that these are indeed rules for musical exercises — I doubt that anyone seriously expects rules like this to be prescriptive for music in general. The rules reflect an easily articulated set of constraints that tends to limit melodies to what is conventionally “musically pleasing” (although not necessarily “musically good”) for the style in question. Fux’s writing (including, of course, the polyphony guidelines, not just the melody-writing guidelines) could also be helpful when writing the other parts by hand, although at this point I’ve probably written enough polyphony to intuitively understand what I’m doing anyways.


As mentioned previously, the key that seems to be implied by this melody is G♯ minor. Indeed, the first three notes trace out a G♯ minor chord. With this in mind, here’s yet another useful way that we can gloss the melody: we can consider only how each note’s pitch-class relates to the tonal region†. In particular, we can replace each note with an integer that represents how many semitones the note is above the tonic (G♯), ignoring the octave that the note is in — so the integers all end up being within the interval [0, 11]:

⟨3, 7, 0, 5, 3, 2, 10, 3, 0, 3, 2, 0, 2, 7, 4, 2, 0, 2, 3, 2⟩.

But, of course, the fact that G♯ is the tonic isn’t the only feature of the tonal region of the key of G♯ minor. We can reflect the structure of G♯ minor, as a key, by replacing these integers with actual scale degrees (all accidentals are w.r.t. G♯ minor):

⟨3, 5, 1, 4, 3, 2, 7, 3, 1, 3, 2, 1, 2, 5, ♯3, 2, 1, 2, 3, 2⟩.

This allows us to count up how many times the 12 possible pitch-classes appear, through the lens of the key of G♯ minor:


Or, sorted (breaking ties by putting longer durations first):


Interestingly, the melody centres very strongly around the first three scale degrees: 1, 2, and 3. This kind of melody writing is typical of melodies based around a pentatonic scale of some kind, but that doesn’t seem to be the case at all here.

Another interesting thing to note is that the sixth degree is the only degree (counting all alterations of a given degree as equivalent) that doesn’t appear at all. I would probably attribute this to my attempts to keep the ambitus small. However, what makes this interesting is that it leaves open the possibility of both G♯ Aeolian (G♯ minor, in the usual sense) and G♯ Dorian. Aeolian and Dorian are essentially adjacent to one another within the circle of fifths, which results in their scales being identical, excepting a single scale degree. You can think of Dorian as being like Aeolian with a major sixth degree (instead of a minor one). In jazz theory, this — combined with the fact that Dorian is the mode associated with the ii chord — results in Dorian being thought of as “the” minor scale, in a way (rather than the usual choice of Aeolian). Constructing a seventh chord on the tonic of Dorian results in a minor seventh chord, just like it does in Aeolian; but, Dorian has the added benefit of a more consonant thirteenth that doesn’t clash as much with the fifth of the chord (in Aeolian, the thirteenth is minor, so its pitch-class is separated from the fifth of the chord by a narrow & dissonant minor second). If “the” minor scale is to be Dorian, then in the place where Ionian (the usual major scale) used to be relative to Aeolian (viz. a minor third higher), there is now Lydian. This should come as no surprise at all to those who are even vaguely aware of the Lydian Chromatic Concept¶, which was highly influential on jazz from the 1950s onward.

The reason that I’ve gone off on a tangent about Dorian and Lydian is because it offers an alternative explanation for the ♯3 scale degree (B♯) that features prominently in the melody. Before, I said:

[T]hat rogue B♯ in the second measure was simply borrowed (see also: Picardy third) from the parallel major: G♯ major, a theoretical key that would be explicitly spelled as A♭ major.

However, we can also imagine that instead of being in the key of G♯ minor, we’re in the mode of G♯ Dorian (as neither E nor E♯/F appear in the melody). In this context, raising the B to a B♯ raises the fourth scale degree of F♯ Ionian/major (which is the relative Ionian to G♯ Dorian) from a perfect fourth to an augmented fourth, thus borrowing from F♯ Lydian instead. Maybe a bit of a stretch, I dunno. But my brain has been rotted by jazz music, so it’s not terribly unlikely.


Although the tempo is a modest 108 quarter notes per minute, the melody comes off as a bit swift due to the heavy use of sixteenth notes and eighth notes. Furthermore, it comes off as a little “funky” thanks to the jagged rhythms and ambivalence towards the beat: out of the eight beats that make up these two measures, only half of them actually appear in the music; if we only look at the four on-beats, only half of those appear, as well. Each beat tends to be broken up strangely — often, the second and/or fourth 16th notes of the beat get emphasised. The general word for this kind of rhythmic trickery is syncopation. This results in the subject of cervine’s Theme being fairly rhythmically complex, despite being nothing more than two bars of 4⁄4, and despite not containing any unusual note values.

Also note that the shortest note duration is a sixteenth note, and that the melody begins with a sixteenth note. I did this intentionally, and it may (or may not) pay off later on…

Footnotes for “The subject”

*The term “prime form” is often used in the context of dodecaphonic techniques; the “prime form” of a tone row (often simply “prime row”) is the original form of a tone row, before it has been transformed by inversion, retrogradation, or whatever. My usage here is from music theory more broadly (although usually in the context of counterpoint), where the prime form can be of a melody instead. Tone rows lack much of the information that melodies possess: rhythm (i.e. note/rest durations), rests, and octaves (a tone row is a sequence of pitch-classes, and pitch-classes treat pitches separated by an integer number of octaves as equivalent). Also, the “prime form” of a pitch-class set is sometimes used to mean the normal form of said set (see: Forte number).

†“Tonal region” is a bit of a tough term to throw around. The concept is reasonably simple, but only some authors use “tonal region” to refer to it — there’s no clear consensus on what to call such a thing, and many theories will lack the idea of tonal regions entirely. But I like the term. A tonal region is, at its core, a set of pitch-classes. This set is usually (but not always) endowed with an additional structure — which may be called the “tonic” or the “root” depending on the context — that simply picks out one member of the set as special. A tonal region generally encompasses a (spatio)temporal region; that is, a starting point and ending point within a piece of music (or within a part in a piece of music; it’s possible to have more than one tonal region going on simultaneously). Then, all pitches that occur during a tonal region are judged relative to the tonal region. For example, a pitch may be “in key” or may be “out of key”. A pitch may be a “chord tone” or a “non-chord tone”, an “extension” or a “triadic tone”, etc., etc.

‡The use of the word “up” in isolation to refer to tempi in the roughly 180⁓300 BPM range is standard in jazz music, including within fake sheets.

⸸This factoid is given by two separate Wikipedia articles, and both reference the same source: A. L. Uitdenbogerd & Y. W. Yap’s “Was Parsons right? An experiment in usability of music representations for melody-based music retrieval” (2003) (archived). Unfortunately, nothing resembling this factoid is to be found within the brief paper. The paper is related to Parsons codes, and does mention Parsons’s 1975 book; however, the subject of the paper is an experiment in getting non-musicians to formulate melody search queries. I can’t find any mention of anything resembling “23%” (the closest thing that I found was that 23 participants responded “good” when asked about how user-friendly the search engine was…), nor even of the case-insensitive substring “uu”. I don’t have a copy of Parsons’s 1975 book, so I can’t fact-check this one. That being said, it’s not very far-fetched: if I had to guess, starting with *d or *rr is unlikely, and that covers four out of the nine possible prefixes of length three.

¶See George Russell’s Lydian Chromatic Concept of Tonal Organization (1953). LCC is highly notable for its profound effect on jazz music, and for being some of the first music theory that was applied to jazz without coming from a traditional Western classical standpoint.

The stochastic bits

Important preface to this section: I am not a mathematician, and I have little mathematical training (more or less just at a secondary school level). Ordinarily, when I bring out something mathematical in a diary entry, I try to do my due diligence and make sure that I don’t present pseudomathematics as fact. Although I’ve done exactly this due diligence with the following section, so much ground is covered here that I can’t be certain that I’ve not missed anything. Furthermore, the treatment that I give the mathematical subjects here might be seen as anæmic by those with more expertise — unfortunately, I just don’t know as much about the maths stuff as I do the music stuff. That being said, this is written from the perspective of my own attempts to grapple with these subjects, so those who are less familiar with the mathematics might still find it useful. Also, this section has a TL;DR at the end: “In summary… (TL;DR)”.

Now that we have a subject, we can do terrible stochastic things to it. The question is, of course: “what stochastic things?”. We need some mutations, each of which can be applied to a given melody, to yield yet another melody. So, broadly, we want some functions that map melodies to melodies.

We’ll consider the set of pitches 𝒫, and the set of durations 𝒟. We’ll encode each melody as a pair of sequences, both of the same length; the first sequence will be a sequence of pitches (an element of 𝒫𝑛), and the second sequence will be a sequence of durations (an element of 𝒟𝑛). In short, the space of melodies of a given note-length 𝑛 is ℳ𝑛 ≝ 𝒫𝑛 × 𝒟𝑛.

Each element of 𝒫 is actually going to be a pitch-class, not so much a “pitch” per se. This means that 𝒫 is effectively ℤ⧸12ℤ (as we are assuming the use of 12-TET) with a little extra structure, where each pitch is encoded as an element of ℤ⧸12ℤ that measures the number of semitones away from an arbitrary “origin” pitch-class, modulo 12. Usually, we’ll pick some significant pitch-class to be the origin, e.g. the pitch-class of the first note of the prime form of the subject. If necessary, the origin pitch-class can be specified as a subscript of 𝒫, e.g. 𝒫C♯. In 𝒫C♯, a pitch whose pitch-class is D would be encoded as 1 (𝗆𝗈𝖽 12), because a D is one semitone higher than a C♯. Likewise, the pitch-class C would be encoded as 11 (𝗆𝗈𝖽 12)… or −1 (𝗆𝗈𝖽 12), or 23 (𝗆𝗈𝖽 12), etc. For mathematicians, this is a particular instance of a quotient ring; treating pitches in this way amounts to forgetting certain information about the underlying set (the underlying set being all 12-TET pitches in general, without reference to octave equivalence), instead treating pitches as the same when they belong to the same equivalence class, i.e. the same congruence class, i.e. the same pitch-class.

Each element of 𝒟 is encoded as a rational number; we allow a duration of zero, and even durations below zero, for mathematical reasons. Zero duration is easy to interpret (no note is played at all), but negative durations are a little trickier. One way to think of a note that has a duration of −𝑞, for some 𝑞  +, is as a note with a duration of 𝑞 that’s played in some special way (while still retaining the same pitch information), like with vibrato or something. The exact interpretation that you choose isn’t important (so long as it’s invertible), as it’s just there for mathematical convenience. For simplicity, we won’t encode rests as notes; instead, we pave over rests by treating every pitched note as if its duration extends from its onset until the onset of the next pitched note. Again, like the use of pitch-classes (instead of pitches) for 𝒫, this loses some musical information. But in exchange, we get something that’s easier to use mathematically; and as the composer, we can handle the “lost” information as we see fit.

We want to impose some reasonably nice mathematical structure onto 𝒫𝑛, 𝒟𝑛, and ultimately ℳ𝑛, so that we know what structure we’re trying to preserve with our mutation functions. We already have a little bit of structure: the “𝑛” in 𝒫𝑛, 𝒟𝑛, and ℳ𝑛 is some constant natural number, which means that our mutation functions cannot change the number of pitches/durations in our melody if we want said functions to be endomorphisms (which was sorta kinda implied when I said “we want some functions that map melodies to melodies”). It also means that we can never have a different number of pitches than we have durations. And if we want the mutation functions to be invertible (it would be nice if one mutation function could “cancel out” another), then changing 𝑛 is a no-go: if we delete a note, we can’t “remember” how to get it back, and if we add a new note, we can’t “remember” which particular one was newly added! If our mutation functions are indeed invertible, and they preserve the mathematical structure that we endowed ℳ𝑛 with, then they are isomorphisms. An endomorphism that is also an isomorphism is called an automorphism, and this is ultimately what we’re after.

Now for the “imposing structure” part: First, we can make 𝒟𝑛 a vector space. We equip 𝒟𝑛 with a field of scalars ℚ. Then, we define vector addition component-wise; durations are rational numbers, and can be added in the usual way. We also define scalar multiplication component-wise, as you’d expect. So, for example, scalar-multiplying an element of 𝒟𝑛 by 2 effectively yields the same element, but at a halved tempo. And scalar-multiplying by 0 yields a vector of total (cumulative) duration 0; the zero vector 𝟎. A melody whose duration component is 𝟎 (that is, some (𝐩, 𝟎) ∈ ℳ𝑛) ends as soon as it begins, and is silent. Now we can show that these two sets and two operations combine to form a vector space:

Well then, what about 𝒫𝑛? If we want endow 𝒫𝑛 with the structure of a vector space, then we have to consider what its field is, and consider how to implement scalar multiplication. ℚ isn’t going to work here, as our pitches can only be integers (specifically, elements of ℤ⧸12ℤ), so there’s apparently nothing that we can reasonably do when “scalar multiplying” a sequence of integers by an arbitrary rational number. In fact, because we’re working with integers, and because we’re working in 12-TET — which is important because 12 is composite — 𝒫𝑛 is actually not going to be a vector space at all (gasp!). It’s okay though, because it will be a module, over which linearity is defined in the same way anyways.

Because we can settle on 𝒫𝑛 having a module structure, we no longer need a field; a ring will do just fine. Just like the field of scalars for 𝒟𝑛 has the same underlying set (ℚ) as the elements of its vectors, so the ring of scalars for 𝒫𝑛 will have the same underlying set (ℤ⧸12ℤ) as the elements of its vectors. Defining module addition and scalar multiplication also proceeds like with 𝒟𝑛, as ℤ⧸12ℤ is a perfectly well-behaved commutative ring.

As mentioned above, we define ℳ𝑛 ≝ 𝒫𝑛 × 𝒟𝑛. Because this is a Cartesian product in which we want to preserve the structure of the operands, ℳ𝑛 is more specifically a direct product, or direct sum. So, we can instead write ℳ𝑛 ≝ 𝒫𝑛 ⊕ 𝒟𝑛. Of course, we defined 𝒫𝑛 as a module and 𝒟𝑛 as a vector space, but a module is a strict generalisation of a vector space, so we can just as easily think of 𝒟𝑛 as being a module as well. When we take the Cartesian product of these two modules, a natural component-wise module structure on ℳ𝑛 arises.

The ring that this module is built on has ℤ⧸12ℤ × ℚ as its underlying set. We can define module addition component-wise:

(𝐩, 𝐝) + (𝐨, 𝐜) ≝ (𝐩 + 𝐨, 𝐝 + 𝐜).

Scalar multiplication is just as simple:

(𝑧, 𝑞) ⋅ (𝐩, 𝐝) ≝ (𝑧 ⋅ 𝐩, 𝑞 ⋅ 𝐝).

Ring addition…:

(𝑧, 𝑞) + (𝑎, 𝑟) ≝ (𝑧 + 𝑎, 𝑞 + 𝑟).

And finally, ring multiplication:

(𝑧, 𝑞)⁢(𝑎, 𝑟) ≝ (𝑧𝑎, 𝑞𝑟).

To show that the “ring” is indeed a commutative ring, we can observe that ring addition is an abelian group: it associates because both (ℤ⧸12ℤ, +) and (ℚ, +) do, it commutes because both (ℤ⧸12ℤ, +) and (ℚ, +) do, (0, 0) is its identity element, and the inverse of (𝑧, 𝑞) is simply (−𝑧, −𝑞). Then we observe that ring multiplication is an abelian monoid: it associates because both (ℤ⧸12ℤ, ⋅) and (ℚ, ⋅) do, it commutes because both (ℤ⧸12ℤ, ⋅) and (ℚ, ⋅) do, and (1, 1) is its identity element. Then, we just need to show that ring multiplication distributes over ring addition:

(𝑧, 𝑞)⁢((𝑎, 𝑟) + (𝑏, 𝑠)) = (𝑧, 𝑞)⁢(𝑎, 𝑟) + (𝑧, 𝑞)⁢(𝑏, 𝑠)

(𝑧, 𝑞)⁢(𝑎 + 𝑏, 𝑟 + 𝑠) = (𝑧𝑎, 𝑞𝑟) + (𝑧𝑏, 𝑞𝑠)

(𝑧⁢(𝑎 + 𝑏), 𝑞⁢(𝑟 + 𝑠)) = (𝑧𝑎 + 𝑧𝑏, 𝑞𝑟 + 𝑞𝑠)

(𝑧𝑎 + 𝑧𝑏, 𝑞𝑟 + 𝑞𝑠) = (𝑧𝑎 + 𝑧𝑏, 𝑞𝑟 + 𝑞𝑠).

Module addition is an abelian group for the same reasons that ring addition is, so we just need to show:

Whew, okay. So ℳ𝑛 is a direct product of modules! Which means that ℳ𝑛 is itself a module!! Great.

With this module in mind, we can check if our “mutation” functions satisfy some nice properties. In particular, the notion of linear mapping is now well-defined. As mentioned before, ultimately we will be looking at automorphisms as the ideal kind of mutation function. These automorphisms are members of a group (specifically an automorphism group). This is certainly not the first time that someone applied group theory to music; transformational theory has been around since the late 1980s! But the “system” (if you can call it that) that I’m using here is not exactly transformational theory — I’m frankly just making it up as I go…

With all of that said, we don’t want to just throw every possible element of this automorphism group into a pile and then pick randomly… whatever that would mean! There are certain mutations that come to mind as “obvious”, “musically meaningful”, or just “useful”. And I want to weed out any of them that I suspect are likely to do horrible, unmusical things to our melodies.

I’ll be using matrix-style notation for these mutation functions, which is pretty standard. So each mutation function is represented as an boldface uppercase Latin letter, and function composition is represented by juxtaposition (e.g. 𝑓⁢𝑔 instead of 𝑓  𝑔 or 𝑓⁡(𝑔⁡(⋯))). One issue with this is that 𝐈 is commonly used to mean “inversion” (in the music-theoretical sense), but in mathematics this would be used for the identity. So, instead, I’ll be using this character: 𝓘 (U+1D4D8; “mathematical bold script capital I”) for the identity, and retaining the use of 𝐈 (U+1D408; “mathematical bold capital I”) for inversion.

So, let’s meet some of the mutation functions…

And, finally, one more transformation that I came up with that is a bit… questionable…:

And, just to be clear on what the inverses of these mutation functions are:

As you can see, like half of them are involutions…

In summary… (TL;DR)

I want to create a set of “mutation functions”, any one of which can be applied to a melody to get another melody “of the same kind”, in some appropriate sense. In order to get invertibility (the action of any mutation function can be reversed by another mutation function — possibly the same one), and to get closure — plus some slightly more obvious things like association and an identity — I want the set of mutation functions to form a group under the operation of function composition. In order to formalise what a “melody” even is, I encoded pitches as pitch classes (basically, elements of ℤ⧸12ℤ). This loses some information (because of octave equivalence), but that information is left to the discretion of the composer (a.k.a. me) to reconstruct. Furthermore, I encoded durations as rational numbers, with the caveat that we remain agnostic about what negative durations mean (as long as they can be inverted back to their positive counterpart). I called the set of pitch-classes 𝒫, and the set of durations 𝒟; thus, 𝒫𝑛 is the set of all pitch-class sequences of length 𝑛, and likewise 𝒟𝑛 the set of all duration sequences of length 𝑛. By equipping 𝒫𝑛 with ℤ⧸12ℤ as its (commutative) ring of scalars, and 𝒟𝑛 with as its ring (even better: ℚ is a field, so 𝒟𝑛 is ultimately a full-blown vector space) of scalars, both 𝒫𝑛 and 𝒟𝑛 take on the structure of modules. By taking the direct sum 𝒫𝑛 ⊕ 𝒟𝑛, I got ℳ𝑛, the set of all melodies of note length 𝑛, which is also a module (with ℤ⧸12ℤ × ℚ as its ring of scalars). The group that I seek (whose members are the aforementioned “mutation functions”) is then 𝖠𝖿𝖿⁡(ℳ𝑛), the group of affinities from ℳ𝑛 to itself (a.k.a. affine automorphisms).

Now armed with a working definition of “mutation function”, I considered a few of the mutation functions that I might actually want to use:

Applying mutation functions stochastically

Now that we have a modest zoo of mutation functions, we need to actually use them. As I said above:

The basic idea here is to have a melody that appears in successive mutations […], with only the first variation being composed, and the mutations being randomly generated from it. Then, the rest of the piece will be composed around this sequence of mutations, to accommodate it, harmonise with it, justify it, etc.

So the idea is simple:

  1. I start with the prime form of the subject (as seen in “The subject” above), 𝐬. This melody is “mutated” by the identity function (𝓘), which serves as 𝐅0.
  2. I randomly select a single mutation function 𝐅𝑘 (where 𝐅𝑘−1 is the previously selected mutation function), and use it to obtain the melody 𝐅𝑘⁢𝐅𝑘−1⁢⋯⁢𝐅1⁢𝐅0⁢𝐬. Call this melody 𝐬𝑘.
  3. I concatenate 𝐬𝑘 onto the end of the part (in this case, a glockenspiel part) written so far. This concatenation results in the part now being 𝐬0𝐬1⧺⋯⧺𝐬𝑘−1⧺𝐬𝑘 (which is a member of ℳ(𝑘+1)⁢𝑛).
  4. I then repeat steps 2–3 as many times as I see fit, writing the other parts around it as I go.

For step 2 (the “random selection” step), I’m going to use a battle-tested CSPRNG⸸ to ensure that I get good statistical properties from my randomness — and at the same time, the generated sequence of pseudorandom bits should be reproducible by anyone who knows the seed.

Very importantly, I also need to know the probability space that I’m consulting to perform step 2. We’ll call the probability space (Ω, 𝒜, 𝑃). Ω is the sample space (the set of all possible outcomes), and 𝒜 is some σ-algebra on Ω, so that (Ω, 𝒜) is a measurable space. Then, 𝑃 is a measure (in particular, a PMF) so that 𝑃 : 𝒜 → [0, 1], and so that 𝑃⁡(Ω) = 1. I’m not incredibly interested in 𝒜 (because Ω is going to be finite anyways), so we can just let 𝒜 ≔ 𝗣⁡(Ω). On the other hand, I am quite interested in both Ω and 𝑃.

We’ll let Ω be the union of the following sets (note that we’re only considering nontrivial melodies where 𝑛 > 1):

Then, we’ll define 𝑃 based on the above list: for any two events 𝒶, 𝒷 ∈ 𝒜 that are in the above list, 𝑃⁡(𝒶) = 𝑃⁡(𝒷). Because the union of the events in the above list is just Ω, this is a kind of discrete uniform distribution. But 𝑃 as a whole is not uniform over Ω. Each such event 𝒶 should have a kind of uniform “sub-distribution”, if you will: for any two outcomes ω, α ∈ 𝒶, 𝑃⁡({ω}) = 𝑃⁡({α}). Well, with just one exception: for any valid 𝐓𝑘 (that is, 𝑃⁡({𝐓𝑘}) > 0) s.t. −6 < 𝑘 < 6, we want 𝑃⁡({𝐓−6}) = 𝑃⁡({𝐓6}) = 𝑃⁡({𝐓𝑘})⧸2. This takes away the unfair advantage that the tritone has for being its own inverse, without biasing 𝐓𝑘 to go in a particular direction (down vs. up). So, ultimately, the probabilities look something like this:

ω (s.t. ω ∈ Ω)𝑃⁡({ω})
𝑘 ≠ ±6; some valid 𝐓𝑘1⧸88
some valid 𝐂t𝑘1⧸(8𝑛 − 8)
some valid 𝐂p𝑘1⧸(8𝑛 − 8)
some valid 𝐒𝑞1⧸32

To confirm that these probabilities do indeed sum to unity, we observe that:

Then we have the following sum:

1⧸16 + 1⧸16 + 1⧸8 + 1⧸16 + 1⧸16 + (10 ⋅ 1⧸88) + 1⧸176 + 1⧸176 + ((𝑛 − 1) ⋅ 1⧸(8𝑛 − 8)) + ((𝑛 − 1) ⋅ 1⧸(8𝑛 − 8)) + (4 ⋅ 1⧸32) + 1⧸16 + 1⧸16

Which simplifies to:

3⧸8 + (5⧸44) + 1⧸88 + (𝑛 − 1)⧸(8⁢(𝑛 − 1)) + (𝑛 − 1)⧸(8⁢(𝑛 − 1)) + (1⧸8) + 1⧸8

Simplifying further (again, keeping in mind that 𝑛 > 1)…:

1⧸2 + 1⧸8 + 1⧸8 + 1⧸4 = 1.

Aaaand that’s 1! Fantastic! Stochastic! Barftastic!

One nice property is that, if it turns out that my 𝐄𝑞 function sucks (which is likely), then I can simply discard every occurrence of 𝐄𝑞 from the random stream of mutation functions. This results in the same distribution that we’d get by repeating this process without the intent to include 𝐄𝑞.

Speaking of random stream, we need to actually generate one of those. For that, I’m going to be using the handy-dandy ChaCha family of stream ciphers. The use of ChaCha for cryptographic purposes is pretty standard nowadays, as it’s considered to be extremely secure, well-tested, easily implemented efficiently in software, and can be implemented reasonably efficiently in hardware, as well. In particular, ChaCha20, which uses ten double-rounds of ChaCha, hence the name. Because this function is so common, I was able to just snag a Rust implementation from the rand_chacha crate, using the rand crate as a front-end for it. I made a little program that spits out a random stream of the mutation functions by sampling (Ω, 𝒜, 𝑃), with 𝑛 (the number of notes in the melody) hardcoded into the program, and the seed for ChaCha20 also hardcoded in. By exposing the seed, the “random” stream of mutation functions is actually totally reproducible; running the program multiple times will always produce the same results each time.

For the seed, I picked the UTF-8 encoding of the string “cervine is an I/L magelet ❤️”, which comes out to exactly 32 bytes, the number of bytes expected by rand_chacha’s implementation of ChaCha20. The last six bytes actually represent the two Unicode codepoints U+2764, U+fe0f (“heavy black heart”, “emoji variation selector”), which combine to form the red heart emoji.

You can find the program at src/ The program outputs the mutation functions to stdout, in Markdown format (because I write my diary entries in Markdown). The first 16 functions that are output by the program can be seen below:

Okay, yeah, I figured that something like this was gonna happen. We effectively get two occurrences of 𝐄½ in a row (separated only by 𝐂t8 and 𝐑p), which is going to turn all of the 16th notes in the original melody into 64th notes… I was a little curious, so I tried applying (𝐄½)2 to the prime form of the subject (ignoring the other mutation functions for now), and got this monstrosity: E_1-4-test.opus. Ooof. So, partly because I just got a bit unlucky here, I am indeed just going to throw out all occurrences of 𝐄𝑞. >.< To be clear, I still think that it’s a neat idea for a musical transformation, but there’s just no way to really make it cooperate with us in this context.

In any case, for some of these functions (𝐈p, 𝐌5, 𝐌7), I have to choose some pitch-class to serve as the origin (i.e. 0, in integer notation). For that, I’ll just pick G♯, as I already decided above that the prime form of the subject is in G♯ minor (or something like that).

You might reasonably wonder whether or not this stream of mutation functions is “actually random”; after all, I just said that “running the program multiple times will always produce the same results each time”. Because I chose ChaCha20 as the PRNG, we get very strong statistical guarantees about the pseudorandom stream that it emits. As a result, the stream that we get — although it is always the exact same stream, given the exact same seed — is very well-modelled by the probability distribution that is laid out above, viz. (Ω, 𝒜, 𝑃). And it isn’t well-modelled by anything else, other than actually working through the computation of ChaCha20, step by step, knowing all 32 bytes of the seed in advance. You can think of it kind of like the infinite sequence of digits (in any given base, e.g. 2) representing the number π. It’s widely suspected (although unproven), on the basis of virtually every statistical test in the book, that π is an (absolutely) normal number. If this is really the case, then given any arbitrary natural number 𝑘, the 𝑘th digit of the base 𝑏 representation of π is well-modelled by 𝒰{0, 𝑏 − 1}. Yet, the sequence of digits for 𝑘 ≔ 0, 𝑘 ≔ 1, 𝑘 ≔ 2, etc. (i.e. the base 𝑏 expansion of π) can be calculated totally deterministically, e.g. with the Gauss–Legendre algorithm. In spite of this determinism (which is to be expected, as π is just… a number), a UTM equipped with an oracle that can calculate the 𝑘th (𝑘 is a natural number that is the seed for this PRNG, and contains 𝑖 bits of information) digit of π in constant time can be used (again, assuming the absolute normality of π) to generate a random sequence, in the sense that the sequence is unpredictable to anyone who doesn’t have any information about the seeded value of 𝑘. The situation here is similar; the random sequence of mutation functions is easily calculated deterministically by anyone who has the seed (“cervine is an I/L magelet ❤️”), but without the seed — or even with some, but not all, of the seed — it’s intractable to predict the next mutation function in the stream any better than (Ω, 𝒜, 𝑃) can.

Inspecting our group a little more closely

Also, now that we’ve decided on exactly which mutation functions we want, an important mathematical structure is very appropriate: the group whose underlying set is exactly this desired set of mutation functions and their compositions. As mentioned before, we chose our mutation functions to all be members of an affine group: 𝖠𝖿𝖿⁡(ℳ𝑛). Just to be clear (because I’ve been using the word “automorphism” a lot), if we treat ℳ𝑛 as an affine space, then the automorphism group of ℳ𝑛 is the same thing as 𝖠𝖿𝖿⁡(ℳ𝑛). The problem is that we are being picky about which elements of 𝖠𝖿𝖿⁡(ℳ𝑛) we like. So it would be good to narrow 𝖠𝖿𝖿⁡(ℳ𝑛) down to a proper subgroup — this subgroup still, in order to be a group, needs to closed under composition, have an inverse for every element, and have an identity element (associativity is already taken care of because 𝖠𝖿𝖿⁡(ℳ𝑛) associates). So we’re going to have to throw 𝓘 back into the mix, even though we don’t actually want to use it (because it does nothing).

There are, of course, some other elements in this group that aren’t going to be directly & individually applied to our melody. Take 𝐒𝑞 for example: because we want to limit 𝑞 to be an element of {⅔, ¾, 4⁄3, 3⁄2} (for the purpose of stochastically applying mutation functions), we don’t get closure; 𝐒⁢𝐒 = 𝐒4⁄9. Oopsies! So we will end up including {𝐒𝑞 | 𝑞 = 2𝑎−2𝑏 ⋅ 3𝑏−𝑎 ∧ 𝑎, 𝑏 ∈ ℤ} as a subset of the underlying set of this group. This is now closed because (2𝑎−2𝑏 ⋅ 3𝑏−𝑎)⁢(2𝑐−2𝑑 ⋅ 3𝑑−𝑐) = 2𝑎−2𝑏+𝑐−2𝑑 ⋅ 3𝑏−𝑎+𝑑−𝑐 = 2(𝑎+𝑐)−(2𝑏+2𝑑) ⋅ 3(𝑏+𝑑)−(𝑎+𝑐) = 2(𝑎+𝑐)−2⁢(𝑏+𝑑) ⋅ 3(𝑏+𝑑)−(𝑎+𝑐). Proving the other direction (that this only includes the elements actually generated by {𝐒, 𝐒¾}) is left as an exercise for the reader.

Let 𝐺 ≔ {𝐑t, 𝐑p, 𝐈p, 𝐌5, 𝐓1, 𝐂t1, 𝐂p1, 𝐒, 𝐒¾, 𝐄2}. Then 𝐺 is the “smallest” (in the sense that we only include those elements absolutely necessary to maintain closure) group that contains all of our desired mutation functions. It also contains 𝓘 (because, for example, (𝐑t)2 = 𝓘), and as mentioned before, all elements of {𝐒𝑞 | 𝑞 = 2𝑎−2⁢𝑏 ⋅ 3𝑏−𝑎 ∧ 𝑎, 𝑏 ∈ ℤ}. The group is countably infinite (only because of 𝐒𝑞), but clearly finitely generated. You’ll notice that some of the desired mutation functions are missing from 𝐺:

It’s worth taking a look at some of the group’s structure. Now, I’m no computer algebraist※, but I can at least manually consider a few examples of elements that are part of this group. Before I give a small list of a few, we have to talk about commutators.

In general, this group is not abelian, which means that for any two elements of the group 𝑓 and 𝑔, it may or may not be true that 𝑓⁢𝑔 = 𝑔⁢𝑓. That being said, there’s a sense in which this group “kinda mostly commutes”, because most of the elements of the generating set 𝐺 commute with each other. To test whether or not two elements commute, we can just test whether or not the equality 𝑓⁢𝑔 = 𝑔⁢𝑓 holds. Or, we can consult the commutator, which is a handy-dandy binary operation defined like: [𝑓, 𝑔] ≝ 𝑓−1⁢𝑔−1⁢𝑓⁢𝑔. The purpose of this operation is that [𝑓, 𝑔] = 𝓘 iff 𝑓⁢𝑔 = 𝑔⁢𝑓. Because |𝐺| = 10, there are 10𝖢2 = 45 distinct unordered pairs of distinct elements of 𝐺. We don’t care about pairs of the same element with itself, because any element trivially commutes with itself. Out of these 45 unordered pairs, only the following 6 pairs do not commute:

The only part of the above list that is maybe not so obvious is that neither {𝐒, 𝐄2} nor {𝐒¾, 𝐄2} are on it. To show that these commute, we can just show that, for any duration sequence 𝐝 ≔ ⟨𝑑0, 𝑑1, 𝑑2, ⋯⟩:

𝐒𝑞⁢(𝐄2⁢𝐝) = 𝐄2⁢(𝐒𝑞⁢𝐝)

𝐒𝑞⁢⟨2𝑑0, 𝑑1 + 𝑑0, 𝑑2 + 𝑑0, ⋯⟩ = 𝐄2⁢⟨𝑞𝑑0, 𝑞𝑑1, 𝑞𝑑2, ⋯⟩

⟨2𝑞𝑑0, 𝑞𝑑1 + 𝑞𝑑0, 𝑞𝑑2 + 𝑞𝑑0, ⋯⟩ = ⟨2𝑞𝑑0, 𝑞𝑑1 + 𝑞𝑑0, 𝑞𝑑2 + 𝑞𝑑0, ⋯⟩.

Okay, that wasn’t so hard, I guess. In any case, here are a few example equations, as promised:

I’m interested in the Cayley graph Γ(⧼𝐺⧽, 𝐺). This graph is just the graph whose vertex set is the underlying set of ⧼𝐺⧽, and whose edge set is the set of all directed edges from 𝑥 to 𝑥𝑔, where 𝑔 ∈ 𝐺, and 𝑥 ∈ ⧼𝐺⧽. If 𝑔 is its own inverse, then we get an edge from 𝑥 to 𝑥𝑔 and an edge from 𝑥𝑔 to 𝑥, so we usually draw those two edges as a single undirected edge. Each edge gets a “colour” that corresponds to the value of 𝑔 for that edge, i.e. the colour of the generating element that takes you across that edge. For our case, 𝐺 is finite; however, ⧼𝐺⧽ is infinite, so Γ(⧼𝐺⧽, 𝐺) is infinite as well. That being said, we can still visualise infinite graphs — especially ones like this, where the core of the graph is essentially finite, but it goes off onto infinite tangents at some points — so I tried to draw an induced subgraph of Γ(⧼𝐺⧽, 𝐺). I assigned the following colours arbitrarily:

If we write 𝐴[𝑆] to mean the subgraph of 𝐴 induced by a subset of its vertices 𝑆, then you can see a visualisation of Γ(⧼𝐺⧽, 𝐺)[{𝓘, 𝐈p, 𝐈p𝐓1, 𝐌5, 𝐌5𝐓1, 𝐌7, 𝐌7𝐓1, 𝐑, 𝐑p, 𝐑p𝐈p, 𝐑p𝐈p𝐓1, 𝐑p𝐌5, 𝐑p𝐌5𝐓1, 𝐑p𝐌7, 𝐑p𝐌7𝐓1, 𝐑p𝐓1, 𝐑p𝐓1𝐈p, 𝐑p𝐓1𝐌5, 𝐑p𝐓1𝐌7, 𝐑t, 𝐑t𝐈p, 𝐑t𝐈p𝐓1, 𝐑t𝐌5, 𝐑t𝐌5𝐓1, 𝐑t𝐌7, 𝐑t𝐌7𝐓1, 𝐑t𝐓1, 𝐑t𝐓1𝐈p, 𝐑t𝐓1𝐌5, 𝐑t𝐓1𝐌7, 𝐑𝐈p, 𝐑𝐈p𝐓1, 𝐑𝐌5, 𝐑𝐌5𝐓1, 𝐑𝐌7, 𝐑𝐌7𝐓1, 𝐑𝐓1, 𝐑𝐓1𝐈p, 𝐑𝐓1𝐌5, 𝐑𝐓1𝐌7, 𝐓1, 𝐓1𝐈p, 𝐓1𝐌5, 𝐓1𝐌7}] below:

Γ(⧼𝐺⧽, 𝐺)[{𝓘, 𝐈ₚ, 𝐈ₚ𝐓¹, 𝐌₅, 𝐌₅𝐓¹, 𝐌₇, 𝐌₇𝐓¹, 𝐑, 𝐑ₚ, 𝐑ₚ𝐈ₚ, 𝐑ₚ𝐈ₚ𝐓¹, 𝐑ₚ𝐌₅, 𝐑ₚ𝐌₅𝐓¹, 𝐑ₚ𝐌₇, 𝐑ₚ𝐌₇𝐓¹, 𝐑ₚ𝐓¹, 𝐑ₚ𝐓¹𝐈ₚ, 𝐑ₚ𝐓¹𝐌₅, 𝐑ₚ𝐓¹𝐌₇, 𝐑ₜ, 𝐑ₜ𝐈ₚ, 𝐑ₜ𝐈ₚ𝐓¹, 𝐑ₜ𝐌₅, 𝐑ₜ𝐌₅𝐓¹, 𝐑ₜ𝐌₇, 𝐑ₜ𝐌₇𝐓¹, 𝐑ₜ𝐓¹, 𝐑ₜ𝐓¹𝐈ₚ, 𝐑ₜ𝐓¹𝐌₅, 𝐑ₜ𝐓¹𝐌₇, 𝐑𝐈ₚ, 𝐑𝐈ₚ𝐓¹, 𝐑𝐌₅, 𝐑𝐌₅𝐓¹, 𝐑𝐌₇, 𝐑𝐌₇𝐓¹, 𝐑𝐓¹, 𝐑𝐓¹𝐈ₚ, 𝐑𝐓¹𝐌₅, 𝐑𝐓¹𝐌₇, 𝐓¹, 𝐓¹𝐈ₚ, 𝐓¹𝐌₅, 𝐓¹𝐌₇}]

The SVG above was generated by Graphviz version 2.43.0; the DOT data can be found in cayley_graph.gv.

Bonus graph~

Same graph as above, but with no node labels, and with a somewhat different layout:

Same graph as above, but with no node labels, and with a somewhat different layout

The SVG above was generated by Graphviz version 2.43.0; the DOT data can be found in cayley_graph1.gv.

Kinda weird-lookin’, but… cool! I wish I had the patience to make the vertex subset larger…

Footnotes for “The stochastic bits”

*i tried to prove that it was linear lol

†For any non-musicians wondering why “circle of fourths” links to the Wikipedia article on the circle of fifths: the circle of fourths and the circle of fifths are the same structure. A fifth is just the inverse of a fourth, so depending on which direction you traverse this structure in, you either get a “circle of fourths” or a “circle of fifths”.

‡Confusingly, some authors differ slightly in how they define “normal form”. John Rahn (Basic Atonal Theory (1980)) defines it as I’ve defined it here, but Forte (who created the Forte number system for naming pitch-class sets; The Structure of Atonal Music (1973)) packs the numbers “from the left”. This means that when trying to determine a normal form, Forte reads from left to right, and then tries to minimise the number of “0”s before the first “1”, then tries to minimise the number of “0”s before the next “1”, and so on… As it turns out, this only makes the two methods differ slightly on like half a dozen pitch-class sets (e.g. Forte 8-26).

⸸Pronounced /ˈsiː.spɹɪŋ/.

¶As much as I love 12-TET, it would be cooler if 12 were prime. When the modulus 𝑝 is prime, all elements of the ring ℤ⧸𝑝ℤ are coprime with 𝑝 (for obvious reasons), so every element has a multiplicative inverse, and you get a nifty finite field! And two of the most common equally tempered tuning systems, after 12-TET — which completely dominates, for better or worse — are 19-TET and 31-TET, both of which divide the octave into a prime number of equal parts!!

※if someone who’s reading this is, pls help i have no idea what i’m doing lol

❦The closest thing that I know of would be in the works of Olivier Messiaen, who did experiment with some rhythmic transformations that involved adding a fixed duration (e.g. a sixteenth note) to every note in a rhythm.


Now that we have a lovely string of random melodies to deal with, it’s time to deal with them… After all, the melodies themselves — left entirely monophonic — are only so interesting!

Well, even unaccompanied, it is still kind of interesting to me, at least. But I want something more appropriate for the style of my other MapleStory characters’ themes. Something with a chamber music (in the most broad sense of the term) kind of vibe. For this, I chose to accompany the glockenspiel with the following instruments:

I picked these instruments fairly arbitrarily. I thought I’d pick some chordophones, to make things a bit easier on myself; this would keep the glockenspiel naturally more distinct in timbre, as it’s an idiophone. Picking members of the violin family keeps things familiar, and gives a useful choice between arco and pizzicato. Extended passages of pizzicato (during which the performer typically puts their bow down, to free up a hand for plucking) are somewhat rare for instruments in the violin family — excepting the use of contrabass in jazz contexts — but I’m a huge sucker for pizz. So if you play my music, you’re gonna have to get used to putting down that bow!! I picked the viola and contrabass in particular, because I felt like this divided up the ranges of the instruments nicely. If we take the violin family, supplement it with the glockenspiel, and order them all from highest to lowest range, we have (bold instruments are used in cervine’s Theme):

So, as you can see, I’m making use of every other instrument on the list.

The inclusion of a drum kit can be owed to the fact that I’m just extremely accustomed to writing for drum kit… All of the other themes have a drum kit in them, as well. So the drum kit will be taking care of all of my unpitched percussion needs.

Footnotes for “Accompaniment”

*This instrument goes by many names: “contrabass”, “double bass”, “upright bass”, “string bass”, “standup bass”, or even just “bass”. I’m using “contrabass”, which is a common nomenclature in Western classical music.

The introduction

I toyed around with some simple accompaniment ideas — none of which I really liked — before I came up with the following:

Introductory/prime accompaniment parts

In ABC notation
T:Introductory/prime accompaniment parts of “cervine’s Theme”
I:linebreak $
V:1 name="Viola"      clef=alto
V:2 name="Contrabass" clef=bass instrument=C
[V:1] "^pizz." B,/G,B,/ G,D/A,/    B,/G,B,/  G,D/^^F,/-     F,2      |
[V:2] "^pizz." z8                                           zB,,/C,/ |
[V:1]          B,/G,B,/ G,D/A,/    B,/G,B,/  G,D/^^F,/-     F,2      ||
[V:2]          D,/G,,z/ G,,z/A,,/- A,,/G,,z/ G,,A,,/^^F,,/- F,,<z    ||

It might seem strange that this is in 5⁄4, when the prime form of the subject is in 4⁄4. However, the use of 5⁄4 is just for effect, and is limited to the introduction of the piece. Later, these accompaniment parts drop the final beat of the bar entirely, thus fitting into 4⁄4. The metric structure can be reduced as follows. I’ll use an uppercase X for stressed sixteenth notes, a lowercase o for less stressed sixteenth notes, and a hyphen-minus (-) for sixteenth notes that are less stressed than an o, or that are not felt at all:

1 + 2 + 3 + 4 +

As you can see, this is basically just an embellishment of tresillo. Tresillo originated in the music of Sub-Saharan Africa, and then spread to other parts of the world — most notably to the music of Cuba*, where it formed the fundamental basis for Afro-Cuban musical styles like e.g. Afro-Cuban jazz. Tresillo is commonly embellished; for example, see cinquillo, although the pattern that I’m using here is not cinquillo. The highly syncopated rhythm that results is appropriate, given the rhythmic structure of the prime form of the subject.

For the drum kit, I wrote the following part†:

Primary drum pattern

In drum tablature
   1 + 2 + 3 + 4 +

Refer to the appendix for the drum tablature legend.

As you can see, open hi-hat hits are placed on the first two notes of the tresillo, and snare hits are placed on the third (final) note of the tresillo. Somewhat interestingly, the hi-hat pedal presses form a little rhythm of their own:

1 + 2 + 3 + 4 +

This rhythm creates a composite with the driving tresillo rhythm. I continue to use this hi-hat pedal pattern throughout the drumkit part, even after doing away with the tresillo rhythm.

Looking at the introductory viola and contrabass parts, we can see that they essentially outline a G♯ minor chord — nothing fancy going on pitch-wise, although there is a sneaky A♯ thrown in there. Well, and there’s that F𝄪 at the end! Normally, the seventh scale degree of G♯ minor is F♯ (the subtonic) — however, it’s common to borrow the leading tone (F𝄪 in this case) from the parallel major, as in the harmonic minor scale. The added leading tone produces — or as the case may be, implies — a more effective dominant that can then be resolved to the tonic. A full D♯ major chord is outlined at the end: {D♯, F𝄪, A♯} (the A♯ is in the contrabass part).

Footnotes for “The introduction”

*Hence the Spanish name tresillo. Note that in Spanish, tresillo literally means “triplet”, in the sense of three notes that evenly divide the usual space of two notes. This latter sense should not be confused with the vernacular sense used here.

†The notational conventions used here are taken from Audio Graffiti’s Guide to Drum & Percussion Notation (2004) (archived), which is based on Norman Weinberg’s Guide to Standardized Drumset Notation (2002; 1998). Note that Audio Graffiti is now defunct.

Musical texture

By continuing to accompany the various mutations of the subject with viola and contrabass parts similar to the ones that you see above, I was essentially going for a homophonic kind of texture; the viola produces broken chords, and the contrabass supports the broken chords with a bassline. In the end, I’ve obtained… more or less what I was going for, but there are also some not-so-subtle hints at polyphony* throughout. Some genuine moments of polyphony help to “glue together” (if you will) some of the liminal regions of the harmony. And furthermore, the unpredictably shifting rhythmic structure of the main melody encourages a “whatever works” approach to writing the accompaniment — sticking strictly to broken chords may sound rather “forced”, on certain rhythms. The melody mutates in a way that I did not pre-determine (that was the whole point of the stochastic bits!), so it’s my job to make the accompaniment cooperate with the glockenspiel part — not so much the other way around. And also… I just couldn’t help myself…

Footnotes for “Musical texture”

*Polyphony is sometimes used in the very broad sense of “any musical texture featuring two or more voices”. However, such a sense fails to distinguish between homophony and true polyphony (in the usual sense), and also fails to distinguish between heterophony and true polyphony.

Timbral issues

I quickly started to notice that my arrangement of glockenspiel, pizzicato viola, pizzicato contrabass, and drumkit was having some issues, at least within the “performance” and “recording” (using both of these terms very loosely) paradigm that I’m working with — namely, MuseScore 3’s built-in MIDI playback. In a live music setting, the arrangement would almost work, with the exception of the drumkit being too loud. The glockenspiel is not impressively loud (mostly just impressively high-pitched), and the pizzicato violin-family instruments can work with this, as violin-family instruments are characteristically quiet and transient-heavy (read: fast decay, low sustain), particularly when compared to playing the same instrument arco. A drumkit, on the other hand, is not so subtle. There are ways to make drums more subtle:

But, ultimately, I picked drumkit mostly because I’m very familiar with writing for kit, and the part that I wrote is… pretty busy and complicated. The main issue with this is that normally, the glockenspiel sonically cuts through an arrangement by having such high-frequency fundamentals, resulting in the glockenspiel having significant — and importantly, intelligible — activity at and above the 2kHz–4kHz band. The 2kHz–4kHz band is a critical range for human auditory perception, and audio mixing techniques tend to target this band for “lead” voices, e.g. the leading vocal line in a pop song. Anything above this range (viz. >4kHz) is usually thought of as “high frequency” or even “very high frequency”, and tends to be felt, rather than heard. Most acoustic instruments don’t naturally produce high-amplitude content in the >4kHz frequencies, and this results in instruments that do produce significant content at >4kHz being thought of as “harsh-sounding”. Instruments like glockenspiel tend to get a pass because of their low inharmonicity, hence the “chime”- or “bell”-like quality of their timbre.

On the other hand, a drumkit is an assemblage of unpitched percussion instruments, some of which are known for their noisiness*. As a result of being noisy, these instruments tend to have significant activity across almost the entire human hearing range (roughly 20Hz–20kHz) — in other words, these instruments have unusually broad spectral density, particularly around the higher frequencies of the human hearing range. For example, hi-hats produce signals that are basically bursts of white noise!† And even a less noisy cymbal like a ride can contain significant high-frequency content, especially when played on (or near) the bell of the ride. All of this can, regrettably, result in the drumkit stepping on the toes of the glockenspiel.

To remedy this issue, I decided to double the glockenspiel throughout almost all of its part. In particular, I settled on using a vibraphone to double the glockenspiel two octaves below it. This results in the glockenspiel and vibraphone parts being written identically, as the glockenspiel is a transposing instrument that sounds two octaves higher than written. The doubling effect is supposed to be a bit subtle, so that the glockenspiel is still clearly heard as the “lead” instrument; the vibraphone is played at a much lower volume/dynamic level. I considered a few other instruments to do the doubling, including celesta and marimba. Both the celesta and marimba are closely related to the glockenspiel (and to the vibraphone); in fact, we can take a look at their Hornbostel–Sachs‡ (H–S) classifications:


The reason for picking a similar instrument to the glockenspiel is obvious: it’s merely there to reinforce the glockenspiel part, and should not sound like its own independent voice. The only real difference between a glockenspiel and a vibraphone (assuming that the latter has its motor powered off) is that the vibraphone has a lower range (and a sustain pedal, I suppose). The vibraphone is probably more common in jazz than it is in Western classical music, although Berg, for example, did use it extensively (q.v. Lulu (1935)). Putting the vibraphone quite low in the mix is important here, as its range is close to that of the viola, and the viola part is quite important as well (I put a lot of work into it lol).

Footnotes for “Timbral issues”

*The word noise (and related words like noisy, noisiness, etc.) is used to mean several different things in English. In this context, I mean noise in the technical sense of “stochastic signal”. Think white noise, pink noise, etc.

†This often results in hi-hats being a kind of shibboleth that can distinguish lossy audio coding formats from lossless ones.

‡For a Hornbostel–Sachs classification reference, see MIMO’s [raw HTTP warning] “Revision of the Hornbostel–Sachs Classification of Musical Instruments by the MIMO Consortium” (2011-07-08; archived).

Dotted eighth pattern

At the point where 𝐂t8 kicks in, the rhythm of the subject changes enough that I shake up the rhythm of the accompaniment, as well. One part of this was that it sounded to me like a good time to introduce a dotted eighth note pattern in the cymbals of the drumkit part. You can see the first instance of this below*†:

Dotted eighth note cymbal pattern

In drum tablature
   1 + 2 + 3 + 4 + 1 + 2 + 3 + 4 +

Refer to the appendix for the drum tablature legend.

As you can see, I have a ride bell† hit at every dotted eighth note interval. Because the pattern is just two bars of 4⁄4, there are a total of 32 sixteenth notes making up the pattern’s duration, and 32 isn’t divisible by three (three being the number of sixteenth notes making up a dotted eighth note). So the ride bell pattern is “truncated to fit”, if you will — the final ride bell hit in the pattern is just a normal undotted eighth note. Also, you can see that the hi-hat pedal pattern is still intact.

The dotted eighth notes, against the 4⁄4 metre and the undotted eighth notes in the hi-hat part, generate a particular example of polyrhythm. In particular, this is essentially a 3∶4 (dotted eighth∶quarter) polyrhythm.

Footnotes for “Dotted eighth pattern”

*The notational conventions used here are taken from Audio Graffiti’s Guide to Drum & Percussion Notation (2004) (archived), which is based on Norman Weinberg’s Guide to Standardized Drumset Notation (2002; 1998). Note that Audio Graffiti is now defunct.

†I’m using the diamond-shaped noteheads to indicate that specifically the bell of the ride should be struck.

A difficult mutation

I made good progress writing viola, contrabass, and drumkit parts around the successive mutations of the glockenspiel melody. Then, I came across a bit of a… difficult mutation. The 𝐈p function was used early on; in fact, it’s the first mutation function in the pseudorandom stream. Keep in mind that 𝐈p is just 𝐌11 (pitch multiplication by 11). When I later arrived at the 𝐌5 function, I expected something a little bit more exotic — after all, it doesn’t have a very straightforward interpretation like “pitch-class inversion” — but didn’t expect it to be much more difficult to work with than 𝐌11. Well, I guess my expectations were a bit misplaced. Maybe it’s because I decided to always use G♯ as the pitch-class origin (to maintain the mathematical structure discussed above), in spite of the fact that I was essentially working in the key of F major by this point, thanks to the 𝐌11 and 𝐓4 functions. Maybe not. In any case, applying 𝐌5 left me with the following sequence of pitch-classes:

⟨F♯, C♯, F♯, E, F♯, G♯, F, F♯, E, F♯, C♯, E, C♯, D, F♯, C♯, D♯, E, F, C♯⟩.

If we write these in integer notation, with G♯ as the origin, we get:

⟨10, 5, 10, 8, 10, 0, 9, 10, 8, 10, 5, 8, 5, 6, 10, 5, 7, 8, 9, 5⟩.

Some of you may be looking at this and already weeping. If we deduplicate the entries in this sequence (and write them in ascending order), we get:

{0, 5, 6, 7, 8, 9, 10}.

Now that’s what I call chromatic! The interval vector for this pitch-class set is ⟪554331⟫; compare this to the interval vector of a much more familiar pitch-class set of cardinality seven, the diatonic scale: ⟪254361⟫. Yeah… the diatonic scale has three more perfect intervals, and three fewer semitones*… >.< But wait — some of these pitch-classes only appear once in the melody, so maybe we can just… dismiss them as alterations…? In particular, 6 and 7 both appear only once. Well, 0 also appears only once, but we’re going to ignore that fact for now.† Plucking out 6 and 7 gets us:

{0, 5, 8, 9, 10}.

Remember all that mumbo-jumbo from before, about bracelets and pitch-class sets? Well, the normal form of this pitch-class set is {0, 2, 3, 4, 7} (Forte 5-11). But, to get to this normal form from {0, 5, 8, 9, 10}, we have to do an inversion. Because we’re treating pitch-class inversion as its own mutation function, and as its own pitch multiplication (𝐌11), we can’t take it for granted (i.e. we’re working with necklaces now, not bracelets). So if we want a kind of “normal form” of this pitch-class set for our purposes, then we have to do it with transposition alone, because transposition is really just choosing a different origin — and the choice of origin was pretty arbitrary to begin with. This gets us the following “normal form” (listed here as Forte 5-11B):

{0, 3, 4, 5, 7}.

Now, instead of G♯ being the origin, C♯ (or perhaps D♭) is the origin. As you can see, plucking out those two pitch-classes didn’t really get rid of the difficult-to-interpret chromaticism; the subset {3, 4, 5} still represents more than one adjacent semitone. Having more than one adjacent semitone represented within a tonal region is musically unusual. Such an occasion is usually due to the tonal region being intentionally difficult, intentionally chromatic, or analysed in a way that includes “blue notes” as being part of the tonal region‡. However, in this case, it’s none of these things; here, the apparent “chromaticism” is incidental, as a result of treating pitches set-theoretically and doing a straightforward multiplication operation. And I’m left here to try to figure out what I’m supposed to do with this sequence of pitch-classes…

Well, if I decide to take the {0, 3, 4, 5, 7} set, at face value, as a starting point, then we can straightforwardly take the origin (viz. 0) to be the “tonic”. Doing so gives us a kind of split third structure; we could think of it like a kind of pentachord (in the sense of “any five consecutive notes of a [diatonic] scale”), where the second degree of a major scale has been raised to an augmented second above the tonic. Because this is an initial pentachord, no sixth nor seventh degrees are present; as a result, we could equally well interpret this as the initial Mixolydian pentachord (with the same ♯2 degree alteration). The seventh chord built on the tonic would then be a D♭7♯9 — the “7” here denotes “dominant seventh chord”, and the “♯9” denotes an alteration of the ninth factor to an augmented ninth (see [1], [2]). A nice corollary of this is that the two pitch-classes that we omitted would be the minor ninth and major ninth (the latter being the unaltered ninth) of this chord, both of which are also theoretically useful for a dominant seventh chord (the use of ♭9 can be thought of as stemming from the altered scale). So, hey… I managed to squeeze something vaguely tonal out of this mess of a pitch-class sequence! After a whole lot of squeezing!!!

Because the tonality here is fairly ambiguous, and because I somehow managed to analyse a split third out of it, it’s unclear how to write the key signature. Ultimately, the key signature doesn’t actually matter all that much here; however, while I’m writing the other parts (viola and contrabass) around this glockenspiel melody, it will impart some opinion upon the pitches that I choose. Because our pitch-classes are a bit… all over the place, it’s totally fair to just have no key signature at all; having no key signature is not uncommon. But if we actually play the melody (the melody, as shown below, is just one possible rendering; remember that the octave of each note can be changed freely)…

The fifth mutation of the subject melody

In ABC notation
T:The fifth mutation of the subject melody of “cervine’s Theme”
I:linebreak $
^f/^cf/- fe/f/- f/^G/^e/f/ =e/fc/- | ce/^c/- c/d/^f c^d e/^ec/ |

…Then it becomes clear that said melody centres around F♯. Because C♯7♯9 (or D♭7♯9) is an altered dominant of F♯ major (or G♭ major), this actually accords with the analysis above. To see why F♯ sounds like the “centre” (dare I say “tonic”!) here, recall when I originally analysed the prime form of the subject. I found that it sounded like it was pretty firmly in the key of G♯ minor. Furthermore, when counting up the number of occurrences of each scale degree, I found that the second (the supertonic) and the third (the mediant) were by far the most frequent, even more frequent than the tonic! These would be A♯ and B, respectively. We can look at how these two pitch-classes evolved over the course of the random mutations (again, G♯ is the origin, and I’ll be spelling everything with sharps to aid comprehension):

𝐈p⁢⟨A♯, B⟩ = ⟨F♯, E♯⟩

𝐓4⁢𝐈p⁢⟨A♯, B⟩ = ⟨A♯, A⟩

𝐌5⁢𝐓4⁢𝐈p⁢⟨A♯, B⟩ = ⟨F♯, C♯⟩.

Interestingly — and by pure coincidence — the first of these two pitch-classes has only oscillated between A♯ and F♯. Perhaps this contributes to the tonicisation of F♯. In any case, what started out as {A♯, B} in the prime form of the subject, is now {F♯, C♯}. Depending on whether you let F♯ be the origin, or let C♯ be the origin, this dyad either spans a perfect fifth, or spans a perfect fourth. In the West, a perfect fourth in isolation is traditionally considered to be dissonant; the way that such a dissonance is usually (melodically) “resolved” is by collapsing the perfect fourth into a major third or into a minor third. In this tradition, perfect fourths could only be consonant when they appear as the inversion of a perfect fifth that’s found in some chord; for example, a major (or minor) triad in second inversion. But even then, resolving to a triad that’s not in root position would be considered “incomplete” in some sense, requiring still further resolution in order to be truly resolved. So, naturally, this dyad feels like a perfect fifth, with F♯ “on the bottom” (i.e. as the origin). This dyad could, for example, be turned into an F♯ major triad by the inclusion of an A♯.

So, when it came to the key signature, I decided on F♯ major (six sharps). Because the previous section is in F major, it actually does end up sounding like a modulation up by a semitone, as I (at first) intentionally mimic the viola and contrabass parts from the previous section.

With this in mind, I want to take a look at the main portion of cervine’s Theme — where the subject is mutated randomly — and show a little about what’s going on tonally.

Footnotes for “A difficult mutation”

*Note that the sum of the interval vector’s entries (the 𝐿1 norm of the interval vector) is always the (𝑘 − 1)th triangular number, where 𝑘 is the cardinality of the pitch-class set. So, because we’re just looking at heptatonic (𝑘 ≔ 7) sets here, the 𝐿1 norm is just 7𝖢2 = 21. Also, as a matter of notation, it’s common to not separate the entries in the vector from one another (you might expect them to be separated by, for example, commas), as each entry is always a single digit.

†If you get rid of 0 as well, the same logic will apply anyways. Leaving in 0 just makes the structure (if it can be called that…) a little more obvious. And also, 0 is significant here for being the origin — because 0 is the absorbing element of (ℤ⧸12ℤ, ⋅), it’s a fixed point of 𝐌𝑘 for any 𝑘.

‡Arguably, this last possibility is an abuse of the notion of “tonal region”. That being said, exactly what “tonal region” conceptually means is situational — it depends significantly on your broader theoretical framework.

First mutation (𝐈p)

Mutation 1 (𝐈ₚ)

(Pardon the misspellings; the “A♮”s should be “B𝄫”s, and the “E♮”s should probably be “F♭”s…)

In ABC notation
T:“cervine’s Theme”, first mutation (𝐈ₚ)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] F/dA/-    Ae/F/-      F/G/B     FA            |
[V:2] F/A,F/    A,D/G,/     F/A,F/    A,D/__B,/     |
[V:3] D,/A,,z/  A,,z/G,,/-  G,,/A,,z/ A,,G,,/__B,,/ |
[V:1] F/GA/     G/d_F/-     FG/A/-    A/G/=F/G/     |
[V:2] E,/G,E,/  G,D/_F,/    E,/B,G,/  GF/_F/        |
[V:3] B,,/G,,z/ G,,z/_F,,/- F,,/B,,z/ G,F,/_F,/     |

The first mutation is pitch inversion, which swings us from the starting key of G♯ minor to a new key of D♭ major; this moves the tonic down by a perfect fifth, and additionally shifts from minor to the parallel major. In the figure above, I’ve done a little Roman numeral analysis, highlighting each tonal subregion with its own colour. A simplified version might look something like this (in D♭ major):

I – IV – I – iv – ii7 – IV[∆]7.

(See the Roman numeral analysis legend in the appendix below.)

There’s nothing super funky going on here, for the most part. The I functions as a tonic; although it does appear exclusively in second inversion (I64), which classically can have a predominant function, it’s not being used like that here. The IV, iv, and ii are all perfectly usual predominant chords, and virtually “function” this way here, although the IV[∆]7 is perhaps a bit confusing in the context of D♭ major (i.e. it’s not clearly a dominant, at least not yet). The next measure (not shown above) is written in F major, in which case this chord functions as ♭II[∆]7 (a.k.a. V[∆]7⧸♭V); effectively a tritone substitution in F major.

Speaking of this last chord, I have it analysed as a major triad with a split seventh on top. Split sevenths are a bit unusual (probably because they necessarily produce a 3-1*), but both F and F♭ do feature fairly prominently here. Tonally, it actually kinda makes sense, considering that this chord functions as a pivot chord from D♭ major to F major: in D♭, this would diatonically be a major seventh chord (IV∆7); in F major, a seventh chord based on this root would tonally be some kind of tritone substitution, and thus a dominant seventh chord of some kind (♭II7, a.k.a. V7⧸♭V). This naturally suggests a split seventh. Also, because of the split seventh combined with the chord being in third inversion, the “IV[∆]1342” (and the “♭II[∆]1342”) in the image above is ambiguous — in this case, F♭ is in the bass, so this is to be interpreted as IV1342 with an added major seventh above the root.

Footnotes for “First mutation (𝐈p)”

*I’m just going to use “Forte 3-1” (“3-1” for short) to refer to chromatically-filled-in whole tones. To be honest, it comes up so frequently that it’s nice to have a less awkward and less ambiguous name for it.

Second mutation (𝐓4)

Mutation 2 (𝐓⁴)

In ABC notation
T:“cervine’s Theme”, second mutation (𝐓⁴)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] A/fc/-             cg/A/-      A/B/d    Ac          |
[V:2] F/CF/              CF/B,/      A,/CA,/  CF/_D/      |
[V:3] F,/C,z/            C,z/B,,/-   B,,/C,z/ C,_A,,/_D,/ |
[V:1] A/Bc/              B/f_A/-     AB/c/-   c/B/=A/B/   |
[V:2] G,/B,G,/           B,C/_A,/    G,/DB,/  C=A,/G,/    |
[V:3] !courtesy!D,/B,,z/ B,,z/_A,,/- A,,/D,z/ C,E,/G,/    |

The next mutation is transposition up by four semitones (𝐓4). This takes us from D♭ major to F major, and the beginning of this section starts similarly to the previous one. A simplified version of the above Roman numeral analysis follows:

I – IV∆9 – ♭VI∆7 – ii – IV13 – V.

(See the Roman numeral analysis legend in the appendix below.)

The ♭VI∆7 (which appears in second inversion) is nonfunctional; it serves as a chromatic mediant of the previous subregion (IV∆9). It’s tempting to read this as ♭VI7, as ♭VI7 is more common and actually has a function, but there are several “C”s in there, and no “C♭”s. We can see that this is a chromatic mediant (in the strict sense) because the roots of IV∆9 and ♭VI∆7 are separated by a minor third (hence the “mediant”), and the two chords have the same triadic quality — they also have the same seventh chord quality, as they are both major seventh chords, but that’s technically just an added bonus. By spelling the two chords, we can see that they share two common tones (exactly one of which is between the two triads):

Using ♭VI∆7 as a nonfunctional passing chord (“passing” because it occurs only in passing), and placing it in a chromatic mediant relationship with the subregion immediately before it, gives this a more “modern” feel. Chromatic mediants and nonfunctional harmony are unusual in Western music from the common practice period, but reasonably common in styles that emerged during the 20th century and onwards, including not just Western art music of this era, but also jazz (particularly hard bop, modal jazz, post-bop, and onwards) and video game music.

After the ii subregion — which commonly has predominant function, and does here — comes a subregion that I analysed primarily as IV7 (IV13). In a more traditional setting, flattening the seventh factor to make this a dominant seventh chord (instead of a major seventh chord) is unusual unless it serves as a secondary dominant — which it doesn’t, here. However, particularly in jazz (and blues), it’s common to take chords with a clear function and then transmute them (if they aren’t already) into their “parallel dominant seventh chords”, if you will. This stems from the use of neutral sevenths (and thus neutral seventh chords) in blues music: the minor seventh is used as a 12-TET replacement for a more neutral seventh, because a major seventh in 12-TET is just too large (also, on guitar and other instruments that allow slightly sharp pitches, the seventh factor/degree can be bent slightly to be more neutral). Of course, IV–V–I is an extremely common progression, and just like all three of these chords are commonly transmuted into dominant seventh chords in the context of e.g. 12-bar blues (although the 12-bar blues traditionally has these chords in the opposite order: V–IV), the same has happened here.

It may seem unusual that I also analysed this as an Italian augmented sixth chord; after all, if it were such a chord, it would traditionally be followed by some subregion based on an A major triad. An A major triad forms the III of F major, hence the “⧸III”; however, the relative minor of F major is D minor, and in this key, an A major triad is just a plain old V. Thus, even though this “It+6⧸III” is probably better analysed as “IV7” (or “IV13”, or what have you), I chose to also write it as “It+6⧸III” to illustrate the strong relationship that it has with the relative minor here. I also have it analysed a third way, even: “♭III∆9♯11”. This third analysis might seem even weirder, but is actually well-contextualised by the subregions that appear before it: if we switch to the perspective of A♭ major, ♭VI∆7–ii–♭III∆7 becomes IV∆7–vii–I∆7. That’s almost a IV–V7–I, if only the vii were a vii° (the leading-tone triad has a dominant function; you can think of it as a rootless V7). Cool!

Third mutation (𝐂t8)

This mutation performs a circular shift of the duration values of the notes in the subject — the pitches (including the order that they occur in) are left totally intact. The new rhythm of the subject can be notated as follows:

1 + 2 + 3 + 4 + 1 + 2 + 3 + 4 +

See the “Dotted eighth pattern” section above. You can see why I went with a dotted eighth note pattern in the drumkit part here. Out of the eight beats, just four have the incipit of a note occurring on them, and looking only at the on beats, again only half of them have a note (even the downbeat is missing). On the other hand, we can divide this up into ten dotted eighth notes followed by an undotted eighth note (as 3 does not divide 32); in doing so, the first nine of these subdivisions have notes starting on them.

Mutation 3 (𝐂ₜ⁸)

In ABC notation
T:“cervine’s Theme”, third mutation (𝐂ₜ⁸)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] A/fc/-         cg/A/-           A/B/d/A/   c/AB/-            |
[V:2] F/CF/          CF/B,/           A,/C/A,/C/ A,/F_D/-          |
[V:3] F,/C,z/        C,z/B,,/-        B,,/C,z/   C,/F,,/_A,,/_D,/- |
[V:1] Bc/B/-         B/f/_A           Bc         B/=AB/            |
[V:2] D/B,/G,/A,/    B,_A,/B,/        =DC/B,/    D/FB,/            |
[V:3] D,/z/B,,/G,,/- G,,/z/G,,/_A,,/- A,,/z/=D,  G,/D,F,/          |

A simplified version of the above Roman numeral analysis follows:

I – iii – ♭VI – ii – IV13 – ii7.

(See the Roman numeral analysis legend in the appendix below.)

This is the first appearance of the diatonic mediant chord, a.k.a. iii. Because we’re in the key of F major, this manifests as an A minor triad. The iii is kind of an interesting chord, in that it’s the only one of the seven diatonic triads that has no clear function in Western tonal music. That’s not to say that the mediant is useless — to the contrary, it has no clear function just because it can be used for so many things. Different eras and different composers throughout the common practice period have used (and analysed) the mediant in varying ways. Because the mediant sits one third away from both the tonic and the dominant, some composers and theorists — such as Schenker — have treated it has an expansion of the tonic, and others — such as Riemann — have treated it as an expansion of the dominant. The mediant is also commonly the target — or method — of modulation, in which case it may not clearly be either of these two things. In our particular case, the iii triad appears in first inversion, which suggests that it’s probably functioning more like an expansion of the dominant (the V) than anything else.

We also revisit the ♭VI here, which appears as ♭VI∆7 in the previous section. Then, the last three tonal subregions here are again similar to the previous section, except that we end on ii7 in second inversion, which hints at the IV, and thus almost functions as a kind of amen cadence here.

Fourth mutation (𝐑p)

Mutation 4 (𝐑ₚ)

In ABC notation
T:“cervine’s Theme”, fourth mutation (𝐑ₚ)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] B/AB/-    Bc/B/-     B/_A/f/B/        c/B=A/-          |
[V:2] C/FC/     FC/G,/-    G,/_A,/C/_E/     A,/C/E/=A,/-     |
[V:3] C,/F,,z/  F,,z/G,,/- G,,/_A,,/C,/_E,/ A,,/C,/E,/=A,,/- |
[V:1] Ac/A/-    A/d/B      Ag               c/fA/            |
[V:2] A,B,/E/-  E/F/E      A,/B,_D/         _G,/_A,/B,/C/    |
[V:3] A,,/z/B,, E,/D,/E,   A,,/.A,,A,,/     E,/D,/C,/B,,/    |

This mutation (𝐑p) reverses the order of the pitches in the subject, but leaves the rhythm untouched. What follows is the same Roman numeral analysis from the image above:

I – ♭III∆7 – IV∆7♯11 – V𝖺𝗅𝗍7⧸vi – ♭II+11×I.

(See the Roman numeral analysis legend in the appendix below.)

The ♭III∆7 appears here, which is not entirely new — in the “Second mutation (𝐓4)” section above, I analysed one of the tonal subregions in various ways, including as ♭III∆9♯11. However, here it appears much more clearly as ♭III∆7, and appears directly after the initial I, instead of being more towards the end of the section. This subregion is borrowed from the parallel minor (F minor). After moving to the subdominant (IV∆7♯11), another subregion is borrowed, but this time from the relative minor (D minor): V𝖺𝗅𝗍7⧸vi. In D minor, this is just V𝖺𝗅𝗍7. Because the V7 is altered, the ♭9 (minor ninth factor) shows up.

Although such an altered dominant chord already produces a lot of tension on its own (that is, after all, what altered dominants are good at), the next tonal subregion after it is even more difficult! Much more difficult, in fact. I have it written as “♭II+11×I”, in order to fit it within the context of Roman numeral analysis. This is a bit shoehorned, but actually works surprisingly well as an analytical label. Both the viola and contrabass are playing a whole tone scale, ascending and descending, respectively. Because the whole tone scale is highly symmetric*, there are only two possible whole tone scales in 12-TET, given a particular reference pitch. This one is the one that contains the pitch-classes {G♭, A♭, B♭, C, D, E}. Because I’m using Roman numerals here, I decided to notate this as “♭II+11”: if “+7” is {0, 4, 8, 10}, then “+9” must be {0, 4, 8, 10, 14}, so then surely “+11” is {0, 4, 8, 10, 14, 18}! Aaaand that’s just the entire whole tone scale. I went with “♭II+” (rather than “♭III+”, “IV+”, etc.) because the next section is in F♯ major, and in F♯ major, this would be I+, which is reasonable to resolve to I (among other things).

The fact that I’m using a whole-tone scale here isn’t really the difficult part per se; the whole-tone scale is certainly very non-diatonic, but what makes things really spicy is the fact that there’s an F major triad going on at the same time (in the glockenspiel part)!! That’s why I labelled this subregion as “♭II+11×I”, rather than e.g. “♭II+11”. The F major triad only shares one of its three factors (viz. C) in common with the chosen whole-tone scale, so this adds two new pitch-classes into the mix and makes things really juicy… or “messy”, depending on how you look at it. The resulting pitch-class set is Forte 8-24, and its normal form is:

{0, 1, 2, 4, 5, 6, 8, 10}.

This pitch-class set is invariant under inversion, meaning that it inverts to a transposition of itself. Its interval vector is ⟪464743⟫. This pitch-class set doesn’t have any special name, because who in their right mind would slap a whole-tone scale onto a major triad? — and with only one common tone‽ However, its complement, Forte 4-24, is the pitch-class set of an augmented seventh chord! That’s nice, I guess. Even nicer is the fact that the augmented seventh chord in question is C+7, which is the V+7 (or V𝖺𝗅𝗍7, if you prefer) of F major! So it’s kinda like I’m outlining everything except the dominant chord of the current key, just as I’m going to modulate to a very distant key (F♯ major).

That being said, I think that paving over the F major triad playing in the glockenspiel part with a whole-tone scale does actually make a lot of sense, even if it is highly dissonant. I can’t change the glockenspiel part to make it not outline an F major triad — the glockenspiel part has been generated partially stochastically. But leaving it like that makes the transition to F♯ major sound too mechanical, almost like a truck driver’s gear change†; modulating directly from an F major chord, the tonic triad of F major, to the key of F♯ major, is just about as clumsy as it gets. Paving over it with a whole tone scale makes things sound extremely unstable, as the whole tone scale is as unstable as it gets: it has no modes, because each scale step is of identical size (a whole tone). Therefore, none of its scale degrees can be effectively tonicised. This effectively obfuscates what’s going on while transitioning from F major to F♯ major.

Footnotes for “Fourth mutation (𝐑p)”

*See also: “Mode of limited transposition”.

†Also known as “truck driver’s gear shift”.

Fifth mutation (𝐌5)

I talked about my initial attempts to grapple with this mutation (𝐌5) in the section above entitled “A difficult mutation”. As mentioned before, 𝐌5 is pitch-class multiplication by five, and in our case, we take the pitch-class origin to be G♯ throughout. 𝐌5 is dubbed the “circle of fourths transformation”, and it maps even elements to their inverses (e.g. 2 ↦ 10), with the rest getting expanded by an augmented triad, viz. each one is transposed by ⟨4, 0, −4, 4, 0, −4⟩, respectively (i.e. in ascending order 1, 3, 5, 7, 9, 11). This augmented triad action is relevant to the way that I transitioned from the previous section to this one: via a whole tone scale.

Mutation 5 (𝐌₅)

In ABC notation
T:“cervine’s Theme”, fifth mutation (𝐌₅)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] f/cf/-        f=e/f/-     f/G/^e/f/   =e/fc/-       |
[V:2] C/FC/         FC/G,/-     G,/E/C/=A,/ =E/C/A,/^A,/- |
[V:3] C,/F,,z/      F,,A,,/C,/- C,/G,,/.E,  .D,B,,/C,/-   |
[V:1] c=e/c/-       c/=d/f      c^d         e/^ec/        |
[V:2] A,G,/B,/-     B,/=D/F     G,/B,/A,/C/ B,/D/C/E/     |
[V:3] C,/z/B,,/=E,/ z/=G,/F,    G,,/.B,,C,/ .B,,C,/^E,/   |

In the image above, I’ve not only highlighted the tonal subregions and annotated each one with a Roman numeral analysis, but I’ve also labelled each note of the glockenspiel part (that is, the subject) with a scale degree. The degrees are named relative to the root of the tonal subregion/chord (not to the tonic of the key), and are also named relative to a major scale starting on said root. So, for example, the iii chord in F♯ major is an A♯ minor chord; playing a C♯ over this chord would be labelled as “♭3”, not “5” nor “3”. The scale degrees are colour-coded, as well. Chord tones (CTs) are in black, non-chord tones (NCTs) that are otherwise happy members of the tonal subregion are in orange, and “blue notes” — basically, non-members of the tonal subregion — are in blue. A simplified version of the Roman numeral analysis in the above image follows:

I – V – ♭III∆9♯11 – iii – ♭VII – ♭VI – vii°7.

(See the Roman numeral analysis legend in the appendix below.)

Hopefully you’re not playing a drinking game related to how many times deer can borrow from the parallel minor, because you might have alcohol poisoning by now. The ♭III∆9♯11, ♭VII, and ♭VI are all borrowed from the parallel minor, F♯ minor. I considered analysing the ♭VII as v, but preferred ♭VII for its more clearly dominant function (or at least flavour). This swings back to the ♭VI, which serves as a predominant, and then finally commits to a really functionally dominant chord that’s actually going to resolve to the tonic: vii°7. Diatonically, this chord appears as vii° (as a triad), or as vii𝆩7 (as a seventh chord), but why be merely half-diminished when you can embrace the limited-transposition chaos that is the diminished scale?

The clear use of diminished scale here helps to contextualise the weirdly chromatic stuff going on in the subject at this point. The effect is somewhat similar to the whole tone scale overlaid onto the major triad in the previous section, albeit less dissonant (in my opinion). The highly symmetric nature of the fully diminished seventh chord makes it effectively rootless, so we could also label this as ii°7, iv°7, or ♭vi°7. Analysing it as ♭vi°7 is a little spicy because then we have the progression ♭VI–♭vi°7, which is a bit of fun parallelism.

Sixth mutation (𝐂t16)

This mutation (𝐂t16) doesn’t affect the pitches of the subject nor their order, but simply performs a circular shift of the duration values rightwards by 16 places. So the subject gets a new rhythm:

Mutation 6 (𝐂ₜ¹⁶)

In ABC notation
T:“cervine’s Theme”, sixth mutation (𝐂ₜ¹⁶)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] fc/f/         =e/f/G     ^e>f         =ef/c/-     |
[V:2] CF/C/         FC/G,/-    G,/EC/       =EC/D/-     |
[V:3] .C,.C,        F,C,/G,,/- G,,/.E,=A,,/ .=E,G,,/D,/ |
[V:1] c/=ec/-       c/=d/f     c/^d/e       ^e>c        |
[V:2] D/C/=A,/B,/-  B,/=D/B,   C=E/C/-      C/^E/C      |
[V:3] z/F,/=D,/B,,/ z/F,,/.B,, .C,=A,,/C,/  z/^A,,/.C,  |

Like with the previous section, I not only give a Roman numeral analysis in the image above, but also label each note of the subject with a scale degree. As before, the degrees are named relative to the root of the tonal subregion/chord (not to the tonic of the key), and are also named relative to a major scale starting on said root. This time, things fit together even better: most of the notes are CTs, and all but one of the NCTs are still somewhere within the tonal subregion. The only exception is the ♭7 over the I chord at the beginning, which is pretty harmless; see in the “Second mutation (𝐓4)” section above where I talk about neutral sevenths.

What follows is a simplified version of the Roman numeral analysis in the image above:

I – vii° – ♭III – ii𝗌𝗎𝗌4 – iv9 – ♭III – iii.

(See the Roman numeral analysis legend in the appendix below.)

The vii°–♭III–ii𝗌𝗎𝗌4 sequence is notable for the “voicings” used; if we pay attention to the inversions that each Roman numeral is annotated with (see: figured bass), we can get the following reduction of the first five tonal subregions:

Reduction of first five tonal subregions of sixth mutation (𝐂ₜ¹⁶)

In ABC notation
T:“cervine’s Theme”: reduction of first five tonal subregions of sixth mutation (𝐂ₜ¹⁶)
I:linebreak $
U: O = "<("">)"
"_I⁶₄"[OCAcf] | "_vii°⁶"[GBe] "_♭III"[=Ac=e] "_ii𝗌𝗎𝗌4"[Gcd] |

Between these five chords, the main three voices move like so (from top to bottom):

pitchesrelative to first pitchrelative to previous
⟨F♯, E♯, E♮, D♯, D♮⟩⟨0, −1, −2, −3, −4⟩⟨∗, −1, −1, −1, −1⟩
⟨C♯, B♮, C♯, C♯, C♯⟩⟨0, −2,  0,  0,  0⟩⟨∗, −2, +2,  0,  0⟩
⟨A♯, G♯, A♮, G♯, A♮⟩⟨0, −2, −1, −2, −1⟩⟨∗, −2, +1, −1, +1⟩

That’s some pretty nifty stepwise motion! You can really hear the descending chromatic line on top; in fact, it actually continues to the next tonal subregion as well, because C♯ is the third factor of ♭III! There’s also a cute little ⟨0, −2, −1⟩ (⟨∗, −2, +1⟩) in the bass notes (and thus roots, as they are all in root position) of the iv9–♭III–iii sequence.

As discussed above (“Third mutation (𝐂t8)”), the iii chord has an unclear function without some context. I think that it’s fair to say that it’s serving as an expansion of the dominant here, resolving to the tonic at the beginning of the next measure.

Because this mutation affects rhythm, I rewrote the drumkit part*:

Drumkit part for mutation 6 (𝐂ₜ¹⁶)

In drum tablature
   1 + 2 + 3 + 4 + 1 + 2 + 3 + 4 +

Refer to the appendix for the drum tablature legend.

As you can see, the persistent hi-hat foot pedal pattern persists here, as well. Otherwise, the cymbal work has switched from dotted eighth notes to straight quarter notes, and from ride bell/china cymbal to just normal ride hits. I make use of a splash cymbal to keep the cymbal sound going when I can’t place a ride hit in the usual place; there would be a ride hit on the “4” of the first measure, but our drummer already has both of their arms occupied doing a flam on the snare. So unless this drummer has three or more arms, that’s a no-can-do.

Speaking of the flams, this is the first time that I actually use flams within this piece. Here, the two flams on the snare emphasise the syncopated downward motion of the ♭III–ii𝗌𝗎𝗌4 progression.

Footnotes for “Sixth mutation (𝐂t16)”

*The notational conventions used here are taken from Audio Graffiti’s Guide to Drum & Percussion Notation (2004) (archived), which is based on Norman Weinberg’s Guide to Standardized Drumset Notation (2002; 1998). Note that Audio Graffiti is now defunct.

Seventh mutation (𝐒3⁄2)

This mutation (𝐒3⁄2) simply multiplies each duration value by a factor of 3⁄2. This is tantamount to multiplying the tempo by a factor of (3⁄2)−1 = ⅔, so this section is actually written completely identically to the previous section (the 𝐂t16 mutation section), with one exception: a tempo marking indicating “♩ = 72” (72 BPM). This is a result of the fact that 108 ⋅ ⅔ = 72. This kind of systematic tempo change is referred to as metric modulation.

It’s remarkable to me just how much different things can sound with merely a tempo change (read: metric modulation). I love employing metric modulations in my music, because preparing for them makes for interesting rhythmic play, and the tempo changes really give a new perspective on the music.

Eighth mutation (𝐑t)

This mutation (𝐑t) doesn’t affect the pitches of the subject nor their order, but simply reverses the order of the duration values. So the subject gets a new rhythm:

Mutation 8 (𝐑ₜ)

In ABC notation
T:“cervine’s Theme”, eighth mutation (𝐑ₜ)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Viola"        clef=alto
V:3 name="Contrabass"   clef=bass   instrument=C
[V:1] f<c         f=e/f/         G^e/f/-     f/=ef/-         |
[V:2] C/FC/       FC/G,/         CE/C/       =E/C/A,/D/      |
[V:3] C,/F,,z/    F,,B,,/C,/-    C,/G,,/.E,  .=E,C,/B,,/     |
[V:1] f/c/=e      c<=d           fc/^d/      e/^e/c          |
[V:2] B,/=D/C     F/D/C/B,/      A,C/B,/     =A,/B,/C/E/     |
[V:3] D,/=A,,/.C, F,/=D,/C,/B,,/ ^A,,C,/B,,/ =A,,/B,,/C,/E,/ |

As you can see, we once again have mostly CTs in the subject melody. This time, the one lonesome blue note is found near the end of the subject, and is a paradigmatic example of a blue note: it chromatically fills in the gap between two scale degrees (or chord factors) that are otherwise separated by two semitones. The ascent from D♯ to E♯ (both members of the whole tone scale that defines the tonal subregion) is filled in with an intervening E♮ to give the sequence ⟨D♯, E♮, E♯⟩ (see also: Forte 3-1).

Here’s a simplified version of the Roman numeral analysis in the image above:

I – v7 – V – iii° – IV – ♭III – V𝖺𝗅𝗍7⧸vi – ♭III+9.

(See the Roman numeral analysis legend in the appendix below.)

Whew~ That’s a lot of Roman numerals. That being said, we’re also at a significantly slower tempo now (♩ = 72), so you can really feel the melodies weaving their way through all of these tonal subregions in real time.

This is the first time that a “v” (minor chord on the dominant degree of the key) has really shown up; as usual, this is borrowed from the parallel minor: F♯ minor. The proper V chord is then briefly outlined before essentially going back to v; I have this second occurrence analysed as “iii°”, although “v” is also plausible here. “iii°” makes more sense for at least two reasons, the most important being that it can naturally be used to effectively tonicise the IV (as it is the vii°⧸IV), which is exactly the subregion that is moved to next. Then we move down a step to our old friend ♭III (again borrowed from the parallel minor).

The tactic after this point is very similar to how I did things in “Fourth mutation (𝐑p)” above. Just like the end of that section was preparing for an 𝐌5 mutation (which drastically changes the tonal content), this section has to prepare for a similar 𝐌7 mutation. Like before, I move to an altered dominant chord that is borrowed not from the parallel minor, but from the relative minor (D♯ minor): V𝖺𝗅𝗍7⧸vi. This subregion is outlined with an altered scale on A♯. Then, I move to using a whole tone scale, namely {A, B, C♯, D♯, E♯, G}. This time, the use of whole tone scale outlines a true pivot chord: both the ♭III+9 of the current key (F♯ major) and the ♭III+ of the key of the next section (D major) are outlined as part of the same whole tone scale. ♭III+ is a common substitute for a dominant chord (i.e. a substitute for V or V7), so this preparation simultaneously sounds as if it’s a cadence to the tonic in the current key and a cadence to the tonic in the new key. This is possible because the tonics of each key (F♯ and D, respectively) are separated by a major third, and an augmented triad is composed entirely of major thirds, which evenly divide the octave into three parts.

Because this mutation affects the rhythm of the subject, I wrote a new drumkit part from scratch just for these two measures*:

Mutation 8 (𝐑ₜ) drumkit part

In drum tablature
   1 e + a 2 e + a 3 e + a 4 e + a 1 e + a 2 e + a 3 e + a 4 e + a

Refer to the appendix for the drum tablature legend.

Because the tempo is so much slower now, there are a lot more 32nd notes actually being used here; before, 32nd notes were mostly limited to short one-handed drags and similar. This drumkit part is pretty much nonsense at the original tempo (♩ = 108), but perfectly reasonable at ♩ = 72.

This drumkit part focuses on the use of closed hi-hat hits — with the performer’s choice of beater, not with the foot pedal — for the bulk of the cymbal usage. However, the persistent hi-hat foot pedal pattern does still persist here; not with foot pedal presses, but with hits of the hi-hat while open. Using the beaters for the hi-hat (instead of the foot pedal) allows for some rolls on the hi-hat. Towards the end of the first measure (and the beginning of the second measure), there’s a brief 32nd-note pattern alternating between the closed hi-hat and the snare (also bass drum, towards the end); because the hi-hat hits are so prominent (as mentioned before, they are essentially bursts of white noise), the consistent hi-hat hits outside of the 16th-note grid give that part a brief syncopated feel.

In the last three beats of the second measure, a pattern between the bass drum and snare is introduced that is essentially based on dotted 16th notes. Here’s a reduction of what’s going on in these last three beats:

...2 e + a 3 e + a 4 e + a

(Refer to the appendix for the drum tablature legend.)

As you can see, there’s a dotted 16th note pattern in the bass drum (oo-) that gets punctuated with snare hits to make it fit within the metre. The first group of three oo- patterns is punctuated by the snare playing straight 16th notes (o-o-), and the latter group of three oo- patterns has the snare initially filling in the missing 32nd note in the bass drum pattern, but then has the snare imitating the bass drum’s oo (instead of just playing o--) in order to fill up the remaining space in the measure.

Footnotes for “Eighth mutation (𝐑t)”

*The notational conventions used here are taken from Audio Graffiti’s Guide to Drum & Percussion Notation (2004) (archived), which is based on Norman Weinberg’s Guide to Standardized Drumset Notation (2002; 1998). Note that Audio Graffiti is now defunct.

Ninth mutation (𝐌7)

As discussed above (also, in the context of a previous closely-related mutation: see “A difficult mutation” and “Fifth mutation (𝐌5)”), this mutation (𝐌7) does some rather interesting things to the pitch-classes present in the subject. However, if we take a look at the mutations so far that affect the pitch-classes present in the subject:

Then, if we ignore 𝐓4 (which doesn’t change the pitch-classes relative to one another; it essentially just changes the pitch-class origin), we have:

𝐌7⁢𝐌5⁢𝐈p = 𝐈p⁢𝐈p = 𝓘.

Of course, there’s a 𝐓4 in there that I just ignored, so the pitch-classes are not actually back to their original set; the point is really that the mutations that do truly funky things to the set of pitch-classes (viz. 𝐈p, 𝐌5, and 𝐌7) have — by sheer luck! — undone themselves. The result is a version of the subject that is very similar to the prime form of the subject: all of the pitches are diatonic to a particular key, except for just a single note in the subject that is sharpened.

For this mutation of the subject, I decided to break away from the texture used for the other mutations. For all of the mutations of the subject prior to this one, we had:

The new texture stays within the realm of chamber music, but looks more like this:

As you can see, the drumkit is now totally absent, and in its place are two new members of the violin family. The result is something vaguely resembling a piano quintet, but with a glockenspiel instead of a piano, and one of each member of the violin family for the string quartet, instead of the usual two violins, one viola, and one violoncello. Although using one of each member of the violin family is very unusual for a string quartet (I’m struggling to think of any examples), I like it a lot, and I think it’s natural to use one of each, thus keeping each instrument in its own distinct range.

That being said, the phrase “one of each member of the violin family” is slightly misleading. The contrabass’s inclusion in the violin family is sometimes disputed, as it represents a kind of bastard child of the violin family and the viola da gamba family. Furthermore, the octobass is sometimes considered a member of the violin family, which would put the number of family members at five, not four.

In any case, here’s the initial statement of the ninth mutation (𝐌7):

Mutation 9 (𝐌₇)

In ABC notation
T:“cervine’s Theme”, ninth mutation (𝐌₇)
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Violin"       clef=treble
V:3 name="Viola"        clef=alto
V:4 name="Violoncello"  clef=bass
V:5 name="Contrabass"   clef=bass   instrument=C
[V:1] f<g             fe/f/        ^gb/f/- f/ef/-        |
[V:2] cc              cc           BB      BA/F/         |
[V:3] A,A,            A,A,         B,B,    B,B,/C/       |
[V:4] F,F,            A,/B,/A,/F,/ ^G,G,   G,G,          |
[V:5] D,D,            D,D,         ^D,D,   D,D,          |
[V:1] f/!courtesy!g/e g<d          fg/a/   e/b/g         |
[V:2] GG              GD/E/        FF      F/G/F/B/      |
[V:3] DD              D/C/D/E/     B,B,    B,/A,/F,/G,/  |
[V:4] !courtesy!G,G,  G,/D,/G,/F,/ E,E,    E,"^!"^E,/G,/ |
[V:5] E,E,            E,E,         A,A,    A,A,,/A,,/    |

As you can see, the overall harmonic movement is essentially just an expansion of a ii–V–I progression. A simplified version of the Roman numeral analysis from the image above follows:

I∆7 – ♭v – ii7 – V13×V𝖺𝗅𝗍7.

(See the Roman numeral analysis legend in the appendix below.)

The second subregion here (♭v) is perhaps surprising; it involves root movement by a tritone (although the bass movement is by just a semitone). We can analyse this chord as the iii of E major (or the ♯iii of E minor). This might seem like a bit of a stretch, but consider the pitch-classes that make up the named chord (♭v, a.k.a. ♯iv):

{G♯, B, D♯}.

Two of these three pitch-classes — namely, G♯ and D♯ — are not diatonic to the current key (D major). The pitch-classes that are diatonic (effectively, the D major scale) are:

{D, E, F♯, G, A, B, C♯}.

If we alter this set by inserting the two aforementioned non-diatonic pitch-classes (G♯ and D♯), using them to replace the corresponding diatonic pitch-classes, we get:

{D♯, E, F♯, G♯, A, B, C♯}.

This is effectively what we get by shoving a G♯ minor chord into the context of D major (which is exactly what’s happening). If we rewrite this set using integer notation, starting at D♯, we get:

{0, 1, 3, 5, 6, 8, 10}.

This is thus the Locrian mode on D♯, which is the same pitch-class set as ­— you guessed it — E major. As mentioned in a previous section (“Third mutation (𝐂t8)”), the iii chord can function as an expansion of either the tonic, or of the dominant. And, within this piece, I’ve been using it pretty much exclusively as an expansion of the dominant. That’s exactly what’s happening here; if this iii — in E major — functions as effectively a dominant, then it naturally resolves to E. And indeed, it does! Just not so much E major, but moreso E minor (albeit with a major sixth scale degree); in the actual key that we’re in (D major), this is just the ii (the “ii7” as labelled above). So our “♭v” functions as a preparation for the ii7 that comes after it! Kinda neat, I guess. Plus, the voice leading is a bit interesting.

Within the ii–V part of this harmonic progression, the ii is pretty typical; it’s your bog-standard ii7. The V, on the other hand, is a little… spicy. To make the V extra full of tension (and because I can, god damnit), I freely mix the diatonic subregion here (basically V13) with the altered version of the same thing. This results in a cacophonous mishmash of the Mixolydian scale with the altered scale, which is why I wrote it with the highly unusual “V13×V𝖺𝗅𝗍7” notation. In the image above, I’ve highlighted a rogue E♯ that appears in the violoncello part; if this is written enharmonically as F♮, then we have a clear cross-relation: {F♮, F♯, G} (Forte 3-1) all sounding simultaneously. That’s a pretty spicy meatball! But these three pitch-classes represent the ♯5 (or ♭13), 13, and ♭7 above the root, all of which are totally traditional for a V chord.

Of course, you could say, “yeah, but that’s just one note in one part, and it’s only a 16th note anyways”. But it does get a little bit spicier as I elaborate this section. Rather than going to the next mutation of the subject (which would be 𝐈p), I made this the last. So, here is the more florid version:

Mutation 9 (𝐌₇), florid version

In ABC notation
T:“cervine’s Theme”, ninth mutation (𝐌₇), florid version
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Violin"       clef=treble
V:3 name="Viola"        clef=alto
V:4 name="Violoncello"  clef=bass
V:5 name="Contrabass"   clef=bass   instrument=C
[V:1] f2<g2               f2ef               ^g2bf-  fe2f-     |
[V:2] c2cA                cBcA               B^dBA   BAcd      |
[V:3] A,G,A,B,            A,2A,2             B,2CB,  A,B,^DC   |
[V:4] F,2F,2              A,B,A,F,           ^G,2G,2 G,A,G,B,  |
[V:5] D,2D,2              C,B,,C,E,          ^D,2D,2 D,2^G,F,  |
[V:1] f!courtesy!ge2      g2<d2              f2ga    ebg2      |
[V:2] !courtesy!d2df      afde               fcAf    edc^B     |
[V:3] DFAF                DCDE               B,2A,C  B,A,F,G,  |
[V:4] !courtesy!G,2G,2    G,A,G,F,           E,G,CG, E,G,^E,G, |
[V:5] E,!courtesy!D,B,,D, E,!courtesy!G,B,G, A,2A,2  A,2A,,A,, |

Way back in a previous section (“Melodic contour”), I mentioned Fux’s Gradus ad Parnassum (1725). The string instrument part-writing in this section is, in some ways, reminiscent of Fux’s so-called “species counterpoint”: each part is a clearly independent melodic line (thus “counterpoint”), there is a cantus firmus (the subject, played by the glockenspiel), and the texture gets more elaborate (more “florid”) as it goes onwards. But my writing is considerably more free; there are several things going on here that would be shockingly modern (or simply gauche) for someone like Fux. When I write contrapuntal textures, I already know about the stylistic mores that constitute the “classical” (or rather, baroque) polyphonic idiom. This idiom gives me a good starting point, and forms a backdrop for my expectations, by giving me a lot of supposed rules that I can freely break (or not break) as I see fit.


The coda of cervine’s Theme consists of a two-measure continuation of the florid counterpoint in the string instruments, while the glockenspiel stops playing. The last of the four tonal subregions is now changed to a different dominant chord, and a penultimate bar of 2⁄4 extends this tonal region to end the piece, followed by a final empty bar of 2⁄4:

The coda of “cervine’s Theme”

In ABC notation & drum tablature
T:“cervine’s Theme”, coda
I:linebreak $
V:1 name="Glockenspiel" clef=treble instrument=c''
V:2 name="Violin"       clef=treble
V:3 name="Viola"        clef=alto
V:4 name="Violoncello"  clef=bass
V:5 name="Contrabass"   clef=bass   instrument=C
[V:1] !fermata!f16                                              |
[V:2] c2cA                cBcA               B^dBA    Bdcd      |
[V:3] A,G,A,B,            A,2A,2             B,2CB,   A,B,^DC   |
[V:4] F,2F,2              A,B,A,F,           ^G,2G,2  G,A,G,B,  |
[V:5] D,2D,2              C,B,,C,E,          ^D,2D,2  D,2^G,F,  |
% 2
[V:1] z16                                                       |
[V:2] !courtesy!d2df      afde               gc^Af    e^dcB     |
[V:3] !courtesy!DFAF      DCDE               C2^A,C   B,A,F,G,  |
[V:4] !courtesy!G,2G,2    G,A,G,F,           G,^A,CA, ^D,F,D,G, |
[V:5] E,!courtesy!D,B,,D, !courtesy!G,B,G,E, ^D,2D,2  D,2D,D,   |
% 3&ndash;4
[V:1] [K:G#m][M:2/4] (3A2=G2F2      (3f2e2.d2      | !fermata!z8!D.C.! |]
[V:2] [K:G#m][M:2/4] (3A2=G2F2      (3f2e2d2       | !fermata!z8       |]
[V:3] [K:G#m][M:2/4] (3A,2B,2C2     (3D2E2F2       | !fermata!z8       |]
[V:4] [K:G#m][M:2/4] (3F,2E,2D,2    (3C,2B,,2A,,2  | !fermata!z8       |]
[V:5] [K:G#m][M:2/4] (3.D,2.D,2.D,2 (3.D,2.D,2.D,2 | !fermata!z8       |]
   1 t p 2 t p

Refer to the appendix for the drum tablature legend.

A simplified version of the Roman numeral analysis from the image above follows:

I∆7 – ♭v – ii7 – ♭II7♭9♯9♭13.

(See the Roman numeral analysis legend in the appendix below.)

As you can see, this is nearly the same subregion sequence as the one from the ninth mutation (𝐌₇) above — but the last subregion has been changed from “V13×V𝖺𝗅𝗍7” to “♭II7♭9♯9♭13”. In one sense, this new subregion functions identically to the old one, as it’s merely a tritone substitution (i.e. V7♭9♯9♭13⧸♭V). However, there’s a good reason why I’ve verbosely specified “♭II7♭9♯9♭13”, rather than notation that I’ve used before, e.g. “♭II𝖺𝗅𝗍7” or “♭II7×♭II𝖺𝗅𝗍7”. This subregion is not merely an altered dominant, nor is it a mixture of altered and unaltered versions of the same thing. The only pitch-classes used are:

{D♯, E, F♯, G, A♯, B, C♯}.

This gets us the D♯7♭9♯9♭13 in question, with emphasis on the fact that the fifth factor (A♯) is perfect, unlike the fifth factor of an altered dominant. Writing the above set in integer notation (with D♯ as the origin) gives:

{0, 1, 3, 4, 7, 8, 10} (normal form {0, 1, 3, 5, 6, 8, 9}: Forte 7-32B).

That’s kind of like D♯ Phrygian, but with a flattened fourth degree. As it turns out, this “Phrygian ♭4” (a.k.a. “altered scale ♮5”) is the third mode of harmonic major. Harmonic major is so called because it’s equivalent to the harmonic minor scale with the third degree raised from a minor third to a major third — also, it’s the inverse of harmonic minor, just like a major triad is the inverse of a minor triad. It can also be seen as a major scale with a flattened sixth degree. Harmonic major is mostly associated with jazz.

In any case, the third mode of harmonic major has a nice property for what I’m doing here. What I’m doing (or trying to do…) here is modulating from the current key (D major) to the key that cervine’s Theme starts in: G♯ minor. Like the other themes that I’ve written, I want this theme to make a good loop, and that means going back to where we started. Of course, this is more easily said than done; the stochastic mutations have taken us a long way from home. When it comes to modulating back to the original key of G♯ minor, I’m exploiting the fact that the tonic of the current key, and the tonic of the key that I wish to modulate to, are a tritone apart. This means that the V7 chords of these two keys have roots that are separated by a tritone, as well; thus, tritone substitution makes a wonderful pivot here! However, the V7 of G♯ minor is not diatonic to that key. The diatonic seventh chord on this root (D♯) is v7, and its associated mode is D♯ Phrygian. To make it sound like we’re moving to the key of G♯ minor as much as possible, I want to pick a tonal subregion that differs as little as possible from G♯ minor, while still containing the V7 (a.k.a. ♭II7, from the perspective of D major) in question. So, the fourth scale degree of this D♯ Phrygian mode is simply lowered! Because a diminished fourth and a major third are enharmonically equivalent, this single alteration by a single semitone is enough to get me what I want.

Speaking of modulating back to where we started, there’s more modulation that needs to be done besides harmonic modulation between keys. The beginning of the piece also has a different tempo, so a metric modulation is in order. In the seventh mutation (𝐒3⁄2), as discussed above, I did a metric modulation from  = 108 to ♩ = 72. Now that we’re doing this in the opposite direction, the note durations will be getting multiplied by a factor of (3⁄2)−1 = 2⁄3. So, for example, what is now an eighth note pre-metric-modulation, will be a triplet eighth note after the modulation (assuming that the tempo marking stays the same, viz. ♩ = 72). So, to prepare for the metric modulation, the natural thing to do is to write triplets! This explains why all of the note durations in the penultimate measure are triplets of some kind. Well, that, plus the fact that it sounds super cool.

During this penultimate measure, almost all of the instruments are playing scale runs across the aforementioned D♯ Phrygian ♭4. The glockenspiel and violin descend, taking a leap up by an octave halfway through. The violoncello also descends (but with no leaps), while the viola runs contrary to the rest by ascending instead. The contrabass hammers on the D♯ at the bottom (thus neither descending nor ascending), reinforcing the D♯7♭9♯9♭13 feeling. I actually had the Shepard scale in mind when writing this; although the effect is obviously not the same, it inspired the idea of having simultaneous homorhythmic scale runs happening in different ways across multiple voices. Also notice that the scale runs in this measure connect seamlessly with the melodies from the previous measure. The soft drum roll in the drumkit part builds the tension, and makes the final note truly final with a bass drum hit simultaneous with a china cymbal (a kind of crash) hit. Finishing a piece at the end of a measure (rather than on the downbeat of the next measure), by putting a final accent on the upbeat (or effectively on the upbeat) is a favourite device of mine. Ending a piece in this way is almost always rhythmically unstable, as the upbeat is typically expected to “resolve to” (if you will) the downbeat. This can make the ending sound like it’s hanging (unresolved), or even like the final measure has been truncated by one beat.

The empty measure of 2⁄4 at the end of the piece with a fermata on it might seem like a cop-out. In some ways, mayhaps it is. However, I don’t think that it’s much of a cop-out, considering that this empty measure is immediately preceded by a (in my opinion) convincing double modulation — both harmonic and metric — to the original key and tempo of the piece.

The piece ends with a “D.C.” marking, meaning da capo. I used a D.C. mark here because I already used repeat signs within the piece, so simply putting a repeat sign here would not actually indicate starting over from the beginning of the piece. For some reason, MuseScore 3 will, by default, not play repeats (as indicated by repeat signs) when playing the piece over again from the beginning as a result of a D.C. marking. Thankfully, this can be configured within the D.C. object itself, but I decided to edit the text of the object to read “D.C. (play repeats)” instead of “D.C.”, just in case ignoring repeat signs while playing a D.C. is something that people actually do. I assume that ignoring repeats by default is to prevent unintentional infinite loops. The intent of the D.C. marking is, of course, to indicate that the entire tune is to be looped.

High-level form

Now that the piece is essentially completed from start to finish, we can step back and take a high-level look at the musical form that the piece takes on. Traditionally, musical form is divided up into a kind of hierarchy of different levels of organisation; each level is its own scope, and within a given scope, the unit of meaning is different in scale. The following list is ordered from finer to coarser:

  1. Subdivisions of the beat. For example, in 4⁄4 time (or 𝑘⧸4 time, for any 𝑘), you might ask how the quarter note beats of each measure are divided up into cells. A cell may or may not overlap multiple beats, but it’s never longer than a measure is.
  2. Metric structure. You might ask how many beats are in a measure (e.g. in 4⧸𝑘 time, this would be 4). You also might ask which beats of each measure are accented, not accented, anti-accented, more (or less) significant in some way, etc.
  3. Phrasal/hypermetric structure. The units of this level of organisation are phrases and/or hypermeasures. A phrase is to music as a sentence is to linguistics. And a hypermeasure is basically what it sounds like: whereas a measure is divided up into one or more beats, a hypermeasure is divided up into one or more measures. A phrase is often (but not always) punctuated by a long note and/or a rest.
  4. Passages/sections. A passage (or section) of a musical piece is the musical equivalent of a paragraph, and encompasses one or more phrases/hypermeasures. A passage is thematically unified, but may contain two or more phrases/hypermeasures that relate to said theme; moving from one passage to the next is conceptually “moving on” to a new theme/subject. In popular music, passages are often “verses”, “choruses”, “bridges”, “intros”, “outros”, etc. In jazz, the head is a passage.
  5. Pieces/movements/songs. The unit of this level of organisation is an entire piece/composition of music. It can also be a movement within a broader work, because movements are defined by being self-contained pieces of music.
  6. Suites/cycles. Sometimes, multiple complete pieces of music are collected together into a suite, or into a song cycle.

I’m concerned mostly with (4.), and to a lesser extent, (3.). Traditionally, the passage-wise “form” of a musical composition (and sometimes, the form at other levels of organisation as well) is analysed by using notation based on uppercase Latin letters. Passages are labelled A, B, C, etc., based on their order of appearance. The reappearance/repetition/reprisal of a passage is notated by using the same letter again, if it reappears identically (or near-identically) to its initial (or its canonical) appearance. Otherwise, variations on the same passage can be specified by using prime symbols, or subscript numerals. For example, if the first (or canonical) appearance of a passage is A, then the next variation would be A′ (or A1), the next variation after that would be A″ (or A2), and so on. With this, it’s possible to succinctly (albeit somewhat vaguely) describe many commonly discussed sectional/passage-wise formats (exponentiation denotes repetition, e.g. A3 = AAA):

cervine’s Theme doesn’t really fit into any of these categories. That being said, it nevertheless bears some relation to a classically-understood passage-wise musical form: theme & variations. Theme & variations is basically what it sounds like: the piece has a central theme (subject), and the piece largely consists of a prime statement of the subject, followed by several variations on the subject. So, we can use the notation from above to give a description of the most basic possible theme & variations form:


That’s a little closer to what cervine’s Theme looks like from a bird’s eye view — but still, not quite. cervine’s Theme has a kind of introduction, and a kind of coda, so maybe it looks a bit more like:


Getting closer! The initial statement of the subject is actually played twice, and the final variation is too. And there are nine variations in total. So we can instead write:


I think that’s about as accurate as we can reasonably get, using this form of notation. But I want something a little less one-dimensional…

In the table below, “occurrences” is 1 unless otherwise specified, and lowercase letters indicate a minor key (uppercase for major):

section subsection measures occurrences key
introduction viola introduction  1– 1 g♯
contrabass introduction  2– 3
drumkit introduction  4– 4 2
initial statement snowfall  5– 6 2
variations 𝐈p  7– 8 D♭
𝐓4  9–10 F
𝐂t8 11–12
𝐑p 13–14
𝐌5 15–16 F♯
𝐂t16 17–18
𝐒3⁄2 19–20
𝐑t 21–22
𝐌7 23–26 2 D
coda lightning 27–28
thunder 29–30 g♯

Excellent! That’s what I like to see.

Helper scripts/programs

Throughout the course of writing this monograph, and simultaneously writing cervine’s Theme, I made use of a few scripts/programs to help do a little bit of the mechanical work.

As mentioned before, I wrote, a Python script, to count the number of bracelets of a given length with a given alphabet size. bracelet_count(n, k) returns the number of k-ary bracelets of length n. Also, necklace_count(n, k) returns the number of k-ary necklaces (bracelets that cannot be turned over, i.e. cannot be inverted) of length n. This was relevant to the section about how the mutation functions in the 𝐂 and 𝐑 families combine to form a dihedral group, and how bracelets are also relevant to the pitch-class sets that are mentioned throughout this monograph.

I used to assist in applying certain mutation functions to the subject of cervine’s Theme:

M(k, ps) helped to apply the 𝐌5 and 𝐌7 mutation functions, and C(k, xs) helped to apply the 𝐂t𝑘 and 𝐂p𝑘 (although 𝐂p𝑘 wasn’t actually used) mutation functions, both of which proved to be a bit difficult to accurately do manually. I used icv(ps) for calculating interval-class vectors when necessary — and to check my work, and the work of random Wikipedia editors. And the functions for converting between string and integer representations of pitch-classes made things easier to work with.

I used to help look up Forte numbers, and to check my work and the work of random Wikipedia editors. This script provides a function normal_form(pc_set, invertible=True), which returns the normal form of the pitch-class set pc_set. pc_set can be an integer whose least significant 12 bits represent the set — setting the least significant bit signifies the presence of pitch-class 0, the second-least significant bit signifies the presence of pitch-class 1, and so on. Or, it can be any finite iterable of integers. In the former case, the return value is an integer as well; in the latter case, a list of integers. Setting invertible to False (it’s True by default) will only search for normal forms that can be arrived at by transposition alone. I actually did find an error in this Wikipedia article: at the time of writing, it has an error for Forte number 5-32B. The article lists its normal form as {0, 3, 5, 8, 9}, but this can simply be transposed to {0, 2, 5, 6, 9}. The listing for 5-32A, however, is correct.

All of the above Python scripts were formatted using Black.

xml2abc was of immense help in translating music that had been written in MuseScore into ABC notation. I did the first six or seven translations by hand, which was a little painful. xml2abc allowed me to export a MuseScore project as MusicXML (which is a fantastic open format that is well-specified, albeit a bit verbose…), and then have it automatically converted to ABC notation. I still had to do the work of formatting it, and fixing some questionable translations. For some reason, xml2abc will put !courtesy! immediately before a note, and then still specify an accidental (e.g. =). The ABC standard v2.2 says (emphasis mine):

The decoration !courtesy! written before a note without an accidental adds a courtesy accidental (sharp, flat, or natural) in parentheses to the left of the notehead.

xml2abc will also emit the deprecated transpose=<semitones> modifier within V: fields. Both of these things are probably due to xml2abc using v2.1 of the ABC standard. xml2abc also uses a bunch of nonstandard extensions like I:percmap. Plus, it always emits major key signatures, so K:B would need to be changed to K:G#m. That being said, I do recommend the use of xml2abc, and it is free software!

As mentioned before, I used MuseScore for writing the music, rendering musical notation to SVG, and recording.

I used Inkscape for editing the SVGs emitted by MuseScore, to remove unnecessary elements, add annotations, etc.

I used Graphviz to generate the SVGs found in the “Inspecting our group a little more closely” section above. You can find the DOT data in cayley_graph.gv and cayley_graph1.gv.

As mentioned above, src/ (written in Rust) was used to stochastically determine the mutation functions used for cervine’s Theme.

I actually used pandoc to render the Markdown that I’m writing, to HTML, so that I could view it in my browser. Normally I don’t do this, as my text editor has built-in support for rendering Markdown, but for something like this, I wanted a second opinion. I did this in a kind of hacky way, running the following command every time that I wanted to render:

pandoc -f markdown -t html -o index.html ./ && echo "<style>body { max-width: 64rem; } img, embed { max-width: 54rem; } html { background: #111315; color: #e0e8f0; } a { color: #8af; text-decoration: none; } a:hover { color: #6df; } table { border-collapse: collapse; margin: 1rem 0 1rem 0; } td, th { border: medium solid #606870; padding: 0.5rem; }</style>" >> index.html

LOL. Sue me.

The finished piece

You can find a recording of cervine’s Theme — which you can download, gratis, in e.g. FLAChere, on my bandcamp page. The theme is used in cervine’s level 120 party video, which you can find on the Oddjobs YouTube channel: “cervine is an archmagelet.”. You can obtain the score (as a MuseScore 3 file) here (cervine-s_Theme.mscz).

In full, a single playthrough of cervine’s Theme has a runtime of roughly ≈86 seconds.

Final thoughts

Although writing this monograph took me nearly a month(!), I’m excited to have written down almost all of my thoughts in the process of composing & analysing a piece. I’ve never really done anything like this before, and I’m happy to have given it a shot! I’m also happy with how cervine’s Theme came out!! It’s a very important theme for a character who is deeply important to me.

I think that the only idea that I never got to incorporate into cervine’s Theme was the use of timpani, specifically to evoke the sound of thunder. It’s a bit unfortunate maybe, but also not surprising to me — I have virtually zero experience writing for timpani, so I wouldn’t know how to incorporate it into a piece, anyways.

If you actually read this far, I love you. Seriously. Did you really just read alllll of that nonsense about some random bitch writing a musical theme for her poopy MapleStory character‽‽‽ <333


Drum tablature legend

Cymbal/drum legend

T1, T2, …Non-floor tom drums, in descending order of pitch
TfFloor tom
BBass drum (kick drum)
HfHi-hat foot pedal

Cymbal technique legend

xOrdinary hit; press hi-hat pedal
XAccented hit
oOpen hi-hat hit
OAccented open hi-hat hit
bHit the bell of the cymbal
BAccented bell hit
sSplash cymbal
SAccented splash cymbal hit
cChina cymbal
CAccented China cymbal hit

Drum technique legend

oOrdinary hit
OAccented hit
gGhost note
FAccented flam
RAccented double stroke (two notes, each at half duration)
rSoft/ghost double stroke (two notes, each at half duration)

Roman numeral analysis legend

examplechord qualityForte #
IVMajor triad3-11B
ivMinor triad3-11A
IV+Augmented triad3-12
iv°Diminished triad3-10
IV7, IV9, …Dominant seventh chord, dominant ninth chord, …4-27B, 5-34, …
iv7, iv9, …Minor seventh chord, minor ninth chord, …4-26, 5-27B, …
IV∆7, IV∆9, …Major seventh chord, major ninth chord, …4-20, 5-27A, …
iv∆7, iv∆9, …Minor-major seventh chord, minor-major ninth chord, …4-19A, 5-z17, …
IV+7, IV+9, …Augmented seventh chord, augmented ninth chord, …4-24, 5-33, …
IV+∆7, IV+∆9, …Augmented major seventh chord, augmented major ninth chord, …4-19B, 5-26B, …
iv𝆩7, iv𝆩9, …Half-diminished seventh chord, half-diminished ninth chord, …4-27A, 5-25A, …
iv°7, iv°9, …Diminished seventh chord, diminished ninth chord, …4-28, 5-31A/B, …
IV7♭5, IV9♭5, …Dominant seventh flat five chord, dominant ninth flat five chord, …4-25, 5-33, …
IV𝗌𝗎𝗌4, iv𝗌𝗎𝗌4Suspended fourth chord, ibid.3-9, 3-9
IV𝗌𝗎𝗌2, iv𝗌𝗎𝗌2Suspended second chord, ibid.3-9, 3-9
IV5, iv5Power chord (perfect fifth dyad), ibid.2-5, 2-5
V7⧸iiSecondary dominant seventh chord, morally equivalent to VI74-27B
V𝖺𝗅𝗍7Altered dominant seventh chord (see also)7-34
IV6, iv6Added sixth chord, added minor-major sixth chord; distinct from first inversion (see below)4-26, 4-27A
It+6, It+6⧸♭IIItalian augmented sixth chord (to resolve to V), Italian augmented sixth chord to resolve to ♭II3-8A, 3-8A
Fr+6, Fr+6⧸♭IIFrench augmented sixth chord (to resolve to V), French augmented sixth chord to resolve to ♭II4-25, 4-25
Ger+6, Ger+6⧸♭IIGerman augmented sixth chord (to resolve to V), German augmented sixth chord to resolve to ♭II4-27B, 4-27B
iv[∆]Triad with split third4-17
IV[−]7, IV[−]∆7Dominant/minor seventh chord with split third, major/minor-major seventh chord with split third5-32B*, 5-21A
IV[∆]7, iv[∆]7Dominant/major seventh chord with split seventh, minor/minor-major seventh chord with split seventh5-z38B, 5-z37
IV×VIIPolychord of two major triads6-30B

Inversions are notated using a combination of superscripts & subscripts, in figured bass style:

exampleinversioninteger notation†
IV, IV7Root position, ibid.0, 4, 7⟩, ⟨0, 4, 7, 10⟩
IV6, IV765First inversion (triad), first inversion (seventh chord)⟨0, 3, 8⟩, ⟨0, 3, 6, 8
IV64, IV743Second inversion (triad), second inversion (seventh chord)⟨0, 5, 9⟩, ⟨0, 3, 5, 9⟩
IV742Third inversion⟨0, 2, 6, 9⟩

Note that I’m simply using <sup> and <sub> tags here, so it won’t actually display quite right. Each subscript number should be directly beneath its superscript number, not beneath and to the right.

Footnotes for “Roman numeral analysis legend”

*In filling out this table, I found that this Wikipedia article has (at the time of writing) an error for Forte number 5-32B. The article lists it as {0, 3, 5, 8, 9}, but this can simply be transposed to {0, 2, 5, 6, 9}. The listing for 5-32A, however, is correct.

†“0” is the bass note, not the root. The root is bolded.