joemattie
stuff
← index
writing2026-07-194 min readupdated 2026-07-23

Weekend update, July 19

Joe Mattie
software engineer · mad scientist

I published the previous weekend update on Thursday morning because the weekend apparently wasn’t finished with me. After that I replaced most of the music lab frontend, turned the local LLM setup into a GPU-sharing service, started a publishing and collaboration system for books, and finally glued some PVC.

The music lab got a workspace

Most of the week went into comfy-music-lab. I finished model evaluations, editable MIDI motifs, stem-aware edits, and a cleaner interface. It all worked, but Studio was organized like a pile of admin pages: Create, Projects, Timeline, Training, Models, and several other destinations that made sense separately and felt wrong together.

I deleted that structure and replaced it with workspaces containing songs and assets. Each song lives on a canvas. A generation appears as a process card, candidates sit next to it, and edits create children instead of overwriting the source. The whole history stays visible rather than dissolving into pages and database IDs.

Audio plays inside each card with a waveform, selectable regions, and an optional spectrogram. Actions depend on the clip and selection, so extending, repainting, splitting stems, converting a voice, or extracting MIDI only appears when it can work. AudioMass handles the advanced edits. Saving sends the result back into the song as another version with its source and settings attached.

Create is driven by the models and recipes actually installed. It handles lyrics, settings, LoRAs, and my trained voice without showing me the ComfyUI plumbing unless I ask. Voice training and local text-to-speech live in Studio too.

Sol, Fable, and Grok worked in separate worktrees against one ledger. I kept changing the product while they built it, which is an efficient test of software architecture and everyone’s patience. The repo ended Sunday with 713 Python tests plus the browser suites, and Studio was reachable from the other machines on my LAN.

At the time, I had already burned 56 percent of the weekly Fable allowance and 29 percent across all models. The lab is about 95 percent done now. The next useful test is to stop building it for five minutes and make music.

The local models learned to share

The dual-3090 setup stopped being a pair of smoke-test commands. I built exl3-server around TabbyAPI and ExLlamaV3 with an OpenAI-compatible endpoint, health checks, and a service that unloads a model when the music lab needs both GPUs, then restores it afterward.

The rebuilt workstation with two RTX 3090s packed into a white glass case

Qwen 3.6 27B and Gemma 4 31B were the larger options. I also tested Qwen 3.5 4B and Ministral 3 3B as small models that could stay ready without eating the machine. Qwen won the fixed structured-output test, 6/6 to 5/6, and restored in about four seconds after giving its memory back.

That mattered more than another leaderboard. Lyrics tools, agents, and music generation could finally take turns on one machine without me manually killing containers all day.

Authorbot got out of hand

I created Authorbot because what was then called Syndrome Space needed something better than a folder of notes and a vague intention to write a book.

Authorbot is a Git-backed editorial control plane for people and external agents working on a serial book. It manages chapters, story files, annotations, votes, work claims, attribution, and publication. It doesn’t call an LLM. Writers and agents do the creative work elsewhere, then submit through the same API.

When I first wrote this update, Authorbot was schemas, stable block IDs, a validator, example repositories, and a static publisher. I spent most of the next few days finishing the rest. It now has the API, browser authoring, inline comments, votes, governance, a leased work queue, a GitHub writer, setup and teardown, and an installable agent skill.

It is published on npm at 0.1.29 0.1.30 0.1.39. npx @authorbot/create can take an empty directory all the way to a live book with collaboration, and npx authorbot dev runs the same authoring loop locally. The project site is live at authorbot.joemattie.com. I put the first 12 chapters of The Causal Projector through it. If you read them, select anything suspect and leave me a comment. I need actual editorial use more than another test fixture.

The PVC became permanent

I started gluing the PVC creature for Burning Man. Until then the frame was dry-fit parts on a dress form, so every bad decision was cheap to reverse. Some of it is permanent now.

The partially glued Raptor frame, harness, tools, and PVC cement spread across the dining-room floor

The physical build is still part software, part paper, and part measurements scribbled wherever they’ll fit.

The first frame beside the dress form, cut pipe, and boxes and jars of PVC fittings

Two printed Raptor proportion sheets covered with handwritten dimensions

A printed Raptor plan beside a hand-drawn frame cross-section, drill, clamps, aluminum plates, and PVC

The creature is about 50 percent done. The design tools are much farther along than the animal, which feels appropriate for a project where I built two pieces of software before committing to the shape of its torso.

I also backed up the useful homelab config and moved agent messaging to stable project identities. New coding sessions can find their old peers instead of creating a fresh address book every time.

Next up is more gluing, more fitting, and a deliberate attempt to use all this software instead of immediately inventing another system around it.

musicaihomelabclaude-codecodexpvcwriting