## Novembeat 2022 plans

My plan for Novembeat this year is to produce music that would be suitable for looping background tracks on video games. Ideally this would be driven by folks making music requests for their game jam games!

As always I’ll be releasing the album on my Bandcamp and my itch.io page. Most likely I’ll have Bandcamp just have the “soundtrack” version and itch have both “soundtrack” and “bgm” versions (where “bgm” will be suitable for looping, as opposed to “soundtrack” which will just play in one-shot mode).

## Co-op creative agency

The best times in my career have been when I’ve been tasked with solving interesting problems or making single-serving things, rather than working on a single specific project in the long term.

I am really good with figuring out how to do a thing, but not so much with figuring out what to do in the first place.

I feel like my best career path would be some sort of consulting, or working for a creative agency. But I really do not like the actual work model involved in either of those things.

## Bayonetta and voice acting

I’m not privy to any specific details about the situation between Hellena Taylor and PlatinumGames. The very public discourse around it is going through a very all-or-nothing no-nuance quick-takes cycle, as usual, and while I have personal opinions about Taylor along a number of axes, none of them are particularly relevant to the situation. (I will also not be buying Bayonetta 3, but only because I’m not a fan of the series to begin with, not because of this situation.)

The unfortunate thing is that people started rallying behind voice actors (and video game talent in general — there are many, many problems with how contractors and full-time employees are treated in the video games industry regardless of their role) and then the propaganda machine worked to tear down Taylor’s specific situation and, by proxy, all situations in the games industry.

## Focusrite 18i20: A quick review

Yesterday my other big hardware upgrade arrived, a Focusrite 18i20 for my Mac mini in the studio, to upgrade the 18i8 I had before (which is now on the Mac Studio in the office).

The tl;dr: for most people the 18i8 is just fine and the 18i20 doesn’t really add anything. Consider the 18i20 only if you have a couple of fussy needs.

## Mac Studio: a quick review

I got my Mac Studio yesterday, to replace the Mac mini in my office (the mini now replacing the 13" MacBook Pro in my recording studio, the MacBook Pro replacing the frustrating Lenovo laptop in the living room), and I have all my stuff set up on it. I went with the 10-core M1 Max model (with the upgraded GPU) and 2TB of RAM, sticking to the stock 32GB of RAM.

## Current goings-on

I haven’t posted any bloggy things in a while, and I know folks start to worry if I haven’t posted in a while. So,

## Song Fight! Live 2022

Song Fight! Live 2022 is a go, happening October 8 at 6 PM Pacific/9 PM Eastern on YouTube:

Some time later, my set alone will be available on my YouTube channel. Don’t forget to subscribe to my channel to keep the algorithm from eating your soul.

## My condo is finally sold!

Yay, the big financial albatross is no longer around my neck. Now I can feel a lot more free to move forward with all of the projects I’ve been wanting to do, and not have to worry about, y'know, finances for a while.

I already feel a million pounds lighter.1

So anyway, time to start looking at redoing my kitchen.

Some more things about setting up VRChat avatars.

## Matrix Third Room

Back when the VRChat debacle took place, I’d rambled quite a lot about the idea of a standards-based truly-distributed VR system. I probably mentioned how back in the day I was designing something like that, and was intending to use XMPP as the actual transport mechanism; in my more recent reevaluation of the idea I was thinking that using WebRTC to stream the actual realtime data (voice, character animation, etc.) would be the way forward.

Well, the Matrix folks just announced Third Room, which is the same basic concept, running on Matrix and WebRTC! They’ve also made a bunch of other great technology choices along the way.

This is pretty exciting and I’m looking forward to seeing where it goes. At least from a 20,000-foot view it hits all of the right notes for me. For example, using glTF for all object interchange, focusing on in-world editing, and allowing for (apparently optional) world persistence.

Hopefully this can disrupt the stranglehold VRChat has on social VR and will also be a fun, compelling experience in its own right.

## Plaid!

I reached another big milestone on my avatar!

Then I used it in an area with a low-resolution mirror and noticed some really bad texture seams around the edges of the pigmentation map. And I’m wondering if the pigmentation map approach is really all that useful for the avatar in realtime.

## Kegels (PSA)

So, be honest: do you know what kegels are?

Last night I found out that most people I know had never heard of them or, if they had, didn’t know what they were. They’re a pretty good thing to know about though!

In short: they’re a pelvic floor exercise. And they’re very worth doing.

## Surface texturing idea

Right now I’ve been trying to make some more of the pigmentation maps for the critter avatar, and in particular I want to make one for the splotchy coloration (which would also be possibly useful for calico and blue giraffe). But hand-drawing this on a disjoint surface is pretty obnoxious.

## Keyboardio model 100: a brief review

The keyboardio Model 01 was an amazing keyboard, with a couple of unfortunate flaws. The Model 100 is a billion times better.

## General life things

So what’s going on with me right now? Let’s see…

## VRChat avatar, referred colormaps edition

Today I put my literal shower thought into action, and redid the pigment mapping stuff to use a color lookup table instead. And hoo boy, were there a lot of pitfalls; namely:

• Unity defaults to loading color textures as sRGB, and does so by linearizing the color space
• The default wrapped texture lookup causes all sorts of fun boundary conditions to happen
• Default texture compression completely hecks up texture values which rely on precise lookups
• Oh right, interpolation can’t solve precision issues

I don’t actually need the pigment map to look good in untrusted mode: I can have the material itself provide a fallback texture! There’s nothing stopping me from putting a _MainTex slot on the shader which just does nothing on the shader, but which would be used by the Standard fallback; I can use other texture slots for the pigment map and palette. So obvious.

Also, when laying out the palette, it would be helpful to group related things next to each other, which makes mipmapping play more nicely (and also makes authoring eaiser, although still not as easy as just fiddling with sliders in the Unity editor, unfortunately).

## Come to think of it…

It would probably make a lot more sense to just do all of the color schemes as indirect lookups on a “swatch” texture. The math is a lot simpler, it would allow other things like baking gradients in easily, and would also give a lot more flexibility when it comes to various interactions; for example, I’d be able to encode arbitrarily many skin colors into things, which would allow for argyle and such as well. Plus it would give me even more color slots to work with, so I could also have separate colors for the lips, tongue, nose, and inside of the mouth (which are currently stuck using the same color).

Also, doing that would only require two of the channels in the pigment map, which would free up the other two channels for the occlusion and subsurface maps, which would make everything way more efficient overall.

Yeah, I like this idea.