The field guide — a series that opens up one piece of the machinery at a time

How the Beat Lab works

exhibit twenty-eight The field guide
Published 2026-08-27 (UTC)
updated 2026-09-15 (UTC)
A small (human) team and a fleet of AI agents.

A drum machine that lives in your browser, a genie that runs on our own hardware, and a board where nobody has a name.

ask about this page → assistant.strata2signal.com · in beta, still being tested

the short version

A drum machine that lives in your browser, a genie that runs on our own hardware, and a board where nobody has a name.

23,255 words, about 106 minutes to read.

The summary is this page’s own; the receipt lines were drafted by a model on this workshop’s network and every figure in them is in the article, checked before this page went out — what was dropped, and why, is in this page’s receipt file.

If you're new here: strata→signal is a small workshop (plus a friendly dog with a white patch) building RealKeep, a game, and the tools around it, with every model running on hardware we own. The Beat Lab is one of those tools, and it's open to anyone. This is how it works, and what it does with what you give it.

What it is

Do I need the genie to make a beat? No. It can look that way at first glance, because the genie is the first thing on the page, but a beat needs no model at all: the drum machine makes one by hand, in your browser, with no wish spent and nothing sent anywhere. Tap steps into the grid, pick sounds, ride the dials, and it is yours. The genie is an optional way in — a few words, or a photo, into a beat, and a tweak once you have one — and the reading the board asks for before a post is the other place it appears. (Added 2026-09-04, on an operator's word, as the first of the lab's own answers.)

Open the page and a beat is already loaded. Tap ▶ PLAY and it plays. The machine is a grid: one row per drum voice, sixteen steps across one bar. Tap a step to add a hit, tap again for an accent, once more to clear it. Type a vibe — old school breaks, dusty lo-fi for a dog asleep on the couch — and a genie sets the whole machine up for you, hands you a title and a few sentences about what it made, and reads them aloud if you ask. Hand it a photo instead of words and it does the same from the picture. Flip a switch and your groove goes on the board, where a stranger might pick it up and remix it.

There is no account, no app, nothing to install, and nothing to agree to.

The sound is made on your device

Every sound in the Beat Lab is synthesised — built from raw waveforms the instant it plays, by your own browser. There are no drum recordings to download; nothing sits behind the machine but code. (One sound does arrive from us — the genie's own voice, further down — and only when you ask for it.) The kick is a sine wave with a fast pitch drop; the hats are shaped noise; the bell is two square waves through a filter; the 808 — the deep bass note under trap and hip hop — is a sine with a long tail, its note set by a dial. Ten drum voices are made this way, and so are six pads. A pad is a key you tap for a single sound — a zap, a riser, a wood block — and each pad can be set to any of twenty-two sounds. All of it runs on the audio engine already built into every modern browser.

That's why the page is one file and nothing more. It fetches no code from anyone else's servers — no content delivery networks (the shared hosts most websites pull their scripts from), no shared libraries, no fonts from a foundry, no analytics. Our web server also sends the page with a rule (a Content-Security-Policy header) that forbids it from loading anything from, or talking to, any other domain. Load the Beat Lab and your browser asks us for two things — the page, and the board's current grooves — and then makes music on its own. View the source and you are looking at the whole thing.

It also makes sharing simple. ⤴ share the groove produces a link with the beat written into the link itself — every step, every dial, the tempo, the swing and the pad sounds, in the part after the #, the one piece of a web address a browser keeps to itself and never sends to a server. Whoever opens it has the beat rebuilt on their own device; a shared beat never passes through us. If the genie made this beat, the title and sleeve notes it wrote ride along in the link too; the review you asked for does not — it stays on your card unless you choose to put the groove on the board. More on those below.

What happens when you ask the genie

The genie is where our servers come in. Press MAKE IT and your words go to a small service on our web server — a rented virtual machine we administer — which passes them over our own encrypted link to the workshop, where two language models are waiting. A model, here, is a program trained on a vast amount of text that reads a request and writes a reply. Ours are open-weight, meaning anyone can download and run them, and we run them on graphics cards we own. No AI company sees your request.

The first model is a doorman — Mistral Small 3.2 — that checks your text is a musical request and nothing else — plus, since 2026-08-30, the sounds set on your own two rows (see that day's 07:41 addendum). If the doorman is unreachable, slow, or answers with something we can't read, the wish goes through anyway; only a clear refusal stops it. The second is the writer — Gemma 4, the larger of the two — which composes the beat: tempo, swing, the pattern for every voice, the pad sounds, a title, a one-line aside, and a couple of sentences of sleeve notes explaining what the pattern does. The beat lands first — the machine is set up and playing the moment the pattern is shaped — and the genie's aside is still being typed while you hear it. (Corrected 2026-09-03: this sentence said the opposite from the day it was written until today; the addendum of 2026-09-01 00:20 had the order right.) A typical wish takes about four seconds — the table below says how that was measured, and the note of 2026-08-31 08:34 says when — and longer when the seat is busy — and a small panel under every result — one line, tap to open — names every model that answered, times the doorman's pass and the whole round trip, and prints the token count and speed. We don't hide the machinery.

Asking the genie to describe your beat runs the other way: it reads the grid and writes the review. That request carries the tempo, the swing, the grid, the two tone dials — warmth and space — what your two custom rows play and how their two knobs are set, and, once a second set of sounds exists, which set the groove was made with — and nothing else. Refine sends your beat with an instruction — darker, add a fill, half-time — and gets back an edit rather than a new beat. A photo goes to the same writer model, which can also look at pictures: it comes back as a short phrase describing the picture's mood, and that phrase becomes the vibe. The photo makes the same two hops as your words. The beat service never writes it to disk — no temp file, no thumbnail, no cached copy — and the model that looks at it keeps it only for the length of the call.

Because every wish costs real computer time, the genie has manners built in: three wishes in any thirty seconds and a hundred and twenty a day from any one network address (a house on one wifi is one address, so it is sized for a room, not a person); and across everybody at once, two wishes composed at a time, a shared allowance of sixty that refills thirty a minute, and at most sixty-four requests held open. Past those the genie says it's catching its breath. When the genie is resting, your beat stays exactly as it is — the page shows the wait the genie itself named, usually nothing at all and ten seconds after a third quick wish, and the tap works again when the rest ends. Only when our machines can't be reached at all does the page build you a beat itself, on your device, and it says so. A vibe the doorman refuses gets the refusal rather than a beat. Describe falls back the same way — the page reads the grid itself and writes you a plain-language review. Refine and the photo do need the genie, so those wait for it, and your beat is left exactly as it was.

The board

One sentence is the design test everything on the board has to pass: strangers can interact, leave their own art, and leave without a trace of who they were. The lab is a drum machine; the board is what makes it an exhibit. Everything in this section is that sentence made mechanical.

The board is the lab's public shelf: a groove, and the genie's words about it, posted for anyone to hear. A switch sits on the card the moment a beat exists. Flip it on and the post goes up — and if the genie has not read your beat yet, the switch asks for that reading first, which costs one wish (see the addendum of 2026-08-30 14:13); if it has read it but has no name it sealed for the beat now on screen, the switch asks for a name instead, which is the same one wish, so that a post is never left unnamed while the genie can still name it; flip it off and the post comes down. Taking a post down never counts as a wish: no model is involved, the board checks the seal and writes the line. (Any change you can hear — a step, a dial, a pad, the filter — makes a new groove with its own post; only a groove identical down to the dials is "already up there", and then the switch has nothing to take down.) A post holds the beat, the genie's own words, the model that wrote them, the minute it went up, the groove it was remixed from, which of eight families the groove was built in and how it came to be that one — a person named it, the lab worked it out from the groove's own record, the vibe box fell back on it, the lab's die rolled it, or the post records no family at all; the name of the recipe its picture was painted with, the model that painted it and how many steps it took, if it has one; whether a picture it once had has been taken down; its ✦ tally; and a fingerprint of the claim key your browser keeps (below). No name, no account, no address.

Nobody can type onto the board. Every time the genie describes a beat, our server puts a tamper-evident seal on those exact words for exactly what it was shown — the pattern, the tempo and the swing — and the board accepts only text whose seal checks out. Move a dial and the reading still holds (the genie never heard the dial); change a step and the card asks for a fresh reading before the switch arms. So what strangers read is always something the genie wrote from the beat alone; a wish you typed never appears in it. That removes the thing boards usually need moderating for; what remains on it is our own model's words, and ours to answer for.

The page you posted from keeps a small claim key that proves the post was yours; nothing else does. Your browser keeps one such key per post, for your fifty most recent. Clear that browser's stored data — or go past fifty — and the older posts stay up with no way for you to pull them down, until the board's five-hundred-post ring pushes them off the end on its own.

The lab shows one board groove at a time, with its review, a listen now button that drops it straight into your machine, a button to hear the review read aloud, another ↻ to move on, and a ✦ nice tap — the only thing a stranger can write onto your post itself. A card can also carry a small square picture: a sleeve for that groove, drawn by an image model of ours from the beat and the family it was made in — the tempo, the swing, the pattern, the dials — and from nothing anybody typed. The genie's title is not in the instruction the painter is given, and neither is anything you typed: nothing written by a person, or by the genie about your groove, goes into it at all, and every field of that instruction is a lookup from a list this lab already holds. What the genie wrote counts one step earlier instead: when nobody named a family, its own words about that groove are what the lab reads one off, and the family is what picks the pool of rooms a picture can be set in (see the addendum of 2026-09-07 13:10). Which grooves are eligible for a picture: those whose family a person named, and those the lab worked a family out for itself. A family the lab's die rolled at random, a family the vibe box fell back on because nothing you said named one, and a groove that records no family at all are not eligible, and nothing is ever painted for them. Eligible is not the same as painted — a picture can be on its way, can have failed, can be switched off for everybody, or can have been taken down by us — so the square on the card holds one of three things. The picture, if there is one, with one line under it saying which model painted it, how many steps it took and the exact recipe it came from. The drawn blank and the word painting, for an eligible groove whose picture has not arrived and has not been taken down — and that square watches for its own picture, so you do not have to wait for the card to turn: while it says painting the page asks our server about that one post four times over about three quarters of a minute, and the picture takes its place the moment it exists, with nothing else on the card moving and no wish spent. Otherwise — not eligible, or a picture we have taken down — the square is simply there and empty, holding its place so nothing moves under your eyes as the board turns. On the wall, where a tile has no caption to say which it is, an unpainted tile shows the drawn blank instead. One other thing can appear on your card: remix a groove and post your version, and the original's card counts the remix; the board remembers where a groove came from.

The wall. Under that card is a button marked the wall. It appears the first time the board hands this page a groove that names a picture — before that there is nothing behind it to look at, so there is no button — and once it has appeared it stays for the rest of the visit, even if that groove falls off the newest forty-eight while you are reading. It opens a grid of the board's newest forty-eight posts — the same small square pictures the card shows, the name, the tempo and the first line of what the genie heard, all at once. The board hands back forty-eight in one read by design, so forty-eight is what the wall is, and the line above it says so along with how large the whole board is. Plus your own, however old: your browser keeps a claim key for each of your fifty most recent posts, and every one of those that the newest forty-eight did not already carry is fetched by name and added at the end, marked yours ✦. That mark matters on a shared device — the claim keys belong to the browser, not to a person, so an iPad several people have posted from shows every groove that device put up, and the mark is what tells you which are on this browser rather than whose they are. Tap any tile and that groove loads into your machine and plays, exactly as listen now does on the card. The pictures come from our own web server rather than from the part of the site the genie runs on, so a page of forty-eight of them cannot crowd out somebody's wish; nothing is fetched at all until you open it, and the grid closes again on the same button. It opens from two places. The same wall also opens from the card the genie writes for your own beat — a ▦ the wall button on that card's own row, beside ✦ put it on the board — which appears with the one under the board card, at the same moment and under the same rule — and, like it, stays for the rest of the visit once it has — opens the same grid and takes you down to it. It is not a second way in, it is the same door nearer your hand: from up there a second tap takes you back to the wall rather than shutting it, the wall's own close ✕ is what puts it away, and the caret comes back to whichever of the two you opened it from.

The voice

Hear the genie reads the card aloud — the title, the aside, the sleeve notes. The voice is Kokoro, a small open-weight speech model that runs on the ordinary processor of our web server, no graphics card involved, and it will only read words the genie sealed — or, since v0.32.0, one of the lab's own written answers, read by number and never a word you typed (see the addendum of 2026-09-03 15:59). It runs on its own, far looser clock — a few seconds between taps — and never spends one of your hundred and twenty wishes. A finished reading is cached as audio on that same server, keyed by a hash of the words, which is why a line it has read before starts in under half a second; the cache holds no text, no address, and no record of who asked. The one thing it does keep is each file's last-used time — that's how the oldest readings are dropped when the cache fills.

What the lab does with what you give it

  • Your words, your picture, your beat go to our own machines and nowhere else. No third-party AI service is involved anywhere.
  • Nothing you type reaches another visitor, with one exception you control: a share link you make yourself carries the title and notes the genie wrote for you — and if you asked it to, a title can be words you put in its mouth. Your wish itself never travels; text you talked the genie into can, and only in a link you chose to send.
  • Your address is never written to disk. The beat service keeps your network address in its memory while it runs — that is how the daily count (reset at UTC midnight) is kept, how one visitor's ✦ on a board post counts once, and how we count how many different people played in an hour: addresses go into a set, the set's size is written down as a plain number, and the set is counted and thrown away at the first visit after the hour turns. The address itself is never in the request journal, the board file, the feedback file, the voice cache, or the wish ledger. The web server in front of it writes no access log for the lab at all.
  • Since 2026-09-13 the same set is counted once a day as well: at UTC midnight — five seconds past it, by the service's own clock rather than by whoever happens to visit next (changed 2026-09-15, so a night nobody played through still gets counted on time, as a row of zeros) — the service writes down how many different addresses it saw that day, how many requests it answered, and how many of its hourly counts printed — three numbers and a date, no address and not one word anybody typed — then drops the day's set exactly as it drops the hour's, which is why nothing new is kept to produce it and why the web server in front of the lab still writes no access log for it. The two counts answer different questions and are written down separately: the address count is people who asked the lab for something — a wish, a post, a ✦, a note — and the request count is every request it answered, a board somebody only read included.
  • What is kept, is kept on your device. Your current beat (re-saved every few seconds), your light/dark choice, the posts you've ✦'d, the keys to your last fifty board posts, and whether you've seen the four-step explainer once live in your own browser's storage. Nothing there is uploaded on its own; the only time any of it travels is when you act — posting a groove sends that beat, and taking a post down sends that post's key back so the board can check it. Clearing that browser's site data clears all of it.
  • The words you type are kept — without you. Every wish goes into the workshop's own ledger: the words, the beat they produced, the genie's answer, the model that wrote it, and the minute — including wishes the doorman refused, and the other direction too (the beat you asked about and the review it got). No address, and nothing that ties one line to another or to a person. It's how we learn what people ask for and what the genie made of it, and it never leaves the workshop.
  • Beats put on the public board may be used to train and improve our own vibe genie; a beat that never went on the board is never used, each post carries the version of this notice its page showed, and taking a post down also takes it out of any future training set.
  • No code, fonts, or trackers are loaded from anyone else's servers.
  • Feedback — the small ✎ button under the board — keeps three things and no more: your words, the minute (UTC) you sent them, and which build of the page you were on. The humans in the workshop read it.

Numbers, so it isn't just talk

Measured on 2026-08-31 from our own web server through the public site, on the machines the genie has used since 2026-08-29 (twelve rows — ten synthesised voices and your two — and twenty-two pad sounds; earlier readings, from the days this guide was published and re-cut, are in the addenda at the end)

WhatMeasured
A typed vibe → a finished beatAbout 4 s
The genie describing your beatUnder 1 s
A photo → a beatAbout 5 s
The voice, first words (first read / repeat)Under 1 s / about a quarter of a second
A question the lab knows → its answerNo wish; the answer is on the page (matched in under a millisecond)
The pageOne file, about 526 KB (bytes served ÷ 1,000, measured on 2026-09-09 and stated to the kilobyte: the same code measured twice can differ by a byte, so the kilobyte is the honest unit here; about 509 KB at v0.61.0; about 490 KB at v0.60.0; about 489 KB at v0.59.0; about 486 KB at v0.58.0; about 478 KB at v0.57.0; about 478 KB at v0.55.0; about 476 KB at v0.52.0; about 475 KB at v0.51.1; about 453 KB at v0.48.0; about 452 KB at v0.47.0; about 451 KB at v0.46.0; about 443 KB at v0.45.0; about 415 KB at v0.42.0; about 411 KB at v0.40.0; about 407 KB at v0.35.0; about 394 KB at v0.34.0, about 363 KB at v0.32.0, about 345 KB at v0.31.0, about 344 KB at v0.30.0, about 343 KB at v0.29.0, about 340 KB at v0.27.0, about 336 KB at v0.25.0, about 323 KB at v0.24.0, about 318 KB at v0.22.0, about 295 KB at v0.17.0 rising to about 305 KB by v0.21.0, about 490 KB before v0.17.0 — see the addenda of 2026-09-01 and 2026-09-02), zero third-party requests

What to take with you

The sound never leaves your device. The genie runs on machines we own. The board only repeats what the genie sealed. The tab is open at studio.strata2signal.com — go make something loud. The page keeps your beat when the tab goes away and brings it back when you return, and a share link is the copy you can keep or send.

Corrections and later measurements will be added below, each dated (UTC), with a window at both ends where one applies and saying in plain words what it counts.

Addendum, 2026-08-27 22:00–23:00 (UTC) — two behaviours changed after this guide was published earlier the same day, and the sentences above now describe the new ones. First: a rate-limited wish used to replace your beat with one the page built itself while the card said "resting"; since Beat Lab v0.1.3 a resting genie leaves the music alone, and the on-device beat appears only when our machines can't be reached. Second: a groove's identity on the board used to cover only the grid, the tempo and the swing, so a filter or dial change counted as "already up there"; since v0.1.3 any audible change — dials, pads, filter, volume — makes a new groove. The seal is unchanged: it still binds the genie's words to the grid, tempo and swing alone. The numbers table above was measured before these changes and is unaffected by them.

Addendum, 2026-08-28 06:40–09:40 (UTC) — this note is about the speed of a wish and the genie's manners, both of which changed after the first addendum, and the sentences and the table above now describe the new ones. Speed first: the table was re-measured on 2026-08-28 between 09:05 and 09:10 UTC, the same way as the published reading of 2026-08-27 (three warm runs each, through the public address, medians). Two things changed underneath it. The engine had been asking the models for a smaller memory than they were set up with, and each wish paid for a reload of the model before a word was written; since Beat Lab v0.2.2 it asks for what the model already has, and on the same card that took a typed vibe from 7–15 s to about 4 s. Then, the same morning, the genie moved onto machines of its own — the pair that used to answer for the workshop's other tools now answers only for those, and the Beat Lab's genie lives on a slower card that is never in their way. On that card a typed vibe becomes a beat in about 7 s, a description arrives in about 1.5 s and a photo becomes a beat in about 8 s: the fast reading was real, and this is the honest one for the machine you are actually talking to. Manners second: since v0.2.3 the genie grants three wishes in any thirty seconds from one address rather than one, and a hundred and twenty a day rather than sixty, because one public address is very often a whole house — a family on one wifi, or a room at a party, arrived here as one visitor, and the second person to tap met the first person's countdown. A wish refused now says how long until the next one, and it is ten seconds or less. And since v0.2.4 the countdown on the page is the number the genie gave it — usually no rest at all, ten seconds after a third quick wish — where the page used to rest thirty seconds after every wish on its own; the small debug line under a result now says which it was. The voice was not re-measured; nothing about it changed.

Addendum, 2026-08-28 16:28–20:00 (UTC) — three small things on this page moved during the afternoon without a note like this one, which the page promised; here it is. First, the share control on the lab is now called "⤴ share the groove" (it had two names; now one), and the sentence above says so since 16:28 UTC. Second, the page-size row: the lab grew with the day's fixes, and the number now reads about 270 KB — measured the way this table has always measured it, the bytes the site serves divided by a thousand (273 today; an earlier "265" came off a different instrument, the builder's character count, and was wrong by the width of a unit). Third, the voice paragraph said "sixty wishes" for a day whose allowance has been a hundred and twenty since the morning's manners change; it says a hundred and twenty now. Nothing about the models, the seats or the manners changed in this window.

Addendum, 2026-08-29 01:41–09:07 (UTC) — this note is about what changed on the lab between the two releases of that morning, and about the page-size row above. The lab gained a share page with a scannable square (the foot says "built for friends — share it with yours") and a tempo stepper at 01:41 UTC; then, at 09:07 UTC, a small "?" that opens the four steps — make a groove, let the genie hear it, put it on the board, share it with friends — a die beside the vibe box that fills it with one of sixty-four genres, in place of the four suggestion chips, which are gone, and a change of emphasis: the board switch and the chips wear the green outline, and BEATS → VIBES wears the play button's solid green. The size row now reads about 330 KB, measured the same way as before (the bytes the site serves divided by a thousand; 329 today) — the explainer and the die are words and code that ship in the one file, and the earlier reading of about 270 KB was true of the page that existed then. Nothing about the models, the seats or the manners changed in this window.

Addendum, 2026-08-29 14:40–17:27 (UTC) — this note is about the two releases of that afternoon and the page-size row above. The lab's engine learned to refuse a malformed request in one voice (a request the engine cannot safely read is answered with a clear refusal, never silence), the share sheet now follows the beat while it is open, and the expanded receipt under each result gained a row naming which machine answered — by a stage name, never an address — and lost the browser and viewport rows, which told you what you already own. The page grew from about 330 KB to about 345 KB, still with nothing to fetch from anyone else.

Addendum, 2026-08-30 00:30 (UTC) — this note is about the words on the page, which this guide quotes in a few places. Since v0.9.1 the switch under a fresh beat says "put it on the board — hit BEATS → VIBES first" (it used to say "read it first"), every sentence that asks you to get the genie's reading now names that button, and the "tweak this track" box for refining a beat moved out of its folded drawer to sit directly under BEATS → VIBES, where people can find it — in the lab's first 158 wishes, nobody had. Where this guide quotes the older words, read them as the thought, not the letters. The words and controls of that release also grew the page, from about 345 KB to about 365 KB.

Addendum, 2026-08-30 00:31–02:23 (UTC) — this note is about the memory setting the engine used to send with every model call, which the 2026-08-28 note above described as fixed by asking the model server what it already had. The 2026-08-29 outage found the flaw in that fix: when the whole web server rebooted, the engine's one chance to ask came moments before the answering side was ready, so it fell back to a guessed size — and a guessed size is worse than none, because a model call that disagrees with what is loaded makes the model server reload the model from scratch. The first wish after the reboot took 15.3 seconds — 4.5 for the doorman, 10.8 to write. It got worse a few minutes later, when the model server's own warm-up timer loaded the pinned size back and every wish more than five minutes after the last began paying for two reloads instead of one: 23.7 seconds, of which 3.4 were spent actually writing. That ran until the repair. Since v0.9.2 (2026-08-30) the engine sends no size at all: the model server fills in the size its own operator pinned, which by definition matches what is loaded, so the disagreement can no longer be expressed. The engine still asks — at startup, retrying for a few minutes until it hears back (and a refusal counts as hearing back), and hourly after that — but only to write what it hears into its journal as a receipt.

Addendum, 2026-08-30 07:41 (UTC) — this note is about the grid, which grew two rows today, and about what this guide says travels in a link and in a wish. The ten synthesised voices are still ten, and every sentence above about them stays true — but beneath them now sit two rows of your own: give either one any of the twenty pad sounds and it plays that sound on the steps you tap. The genie never writes on those rows and never clears them — a wished beat lands under whatever you built there — but it hears them by instrument name, so its reading can tell you what it thinks of the cowbell. A share link now carries what the two rows play beside their steps, and so does the request a wish sends — that is how the genie knows the instrument's name. Every groove already on the board, and every link ever shared, keeps its exact identity: an empty row says nothing at all. The new rows and their menus also grew the page, from about 365 KB to about 390 KB.

Addendum, 2026-08-30 14:13 (UTC) — this note is about the card under the vibe box and the board switch on it, which this guide describes in its body and quotes in two earlier notes, and about the page-size row above. Since v0.11.0 the switch no longer waits for you: if the genie has not read your beat yet, tapping "put it on the board" reads it first and then posts — one tap, one wish — so the greyed "read it first" state, and every sentence that told you which button to press first, is gone. BEATS → VIBES is no longer a button of its own; it is the first of four chips in an always-open block under the card captioned "tell the genie what to change, or ask it for words", where the refine box now always shows with three more one-tap asks beside it — name it, drop a bar, do a dj intro — nothing folds away any more. The board switch and the share control now appear the moment a beat exists, with a one-line promise under them until your first post ("the board takes the beat and the genie's words about it — no name, nothing about you"), and after you post, the board section shows your own groove once, marked "yours ✦". The four joke-proverb-toast-fortune chips moved to the bottom of the page, below the board, and their words land right under them. The two rows of your own got their choosers moved out of the grid into a small block beneath it, so all twelve rows look alike, and MUTE and SOLO grew to the size of a step. The words and controls of that release grew the page from about 390 KB to about 405 KB.

Addendum, 2026-08-30 16:06 (UTC) — this note is about the pads and the two rows of your own, which this guide describes as things you tap and things you set, and about the page-size row above. Since v0.12.0 there is a ● REC button beside PLAY. Arm it while the groove runs, play the pads — by touch, or on the six home-row keys from A to H — and each hit lands on the nearest step — quantised, in studio speak — of one of your two rows, in a row that already holds that pad's sound or in an empty one that takes it; you watch your line appear as you play, it stacks across loops, and one take is one ↩ Back. The hit is quantised against the time the machine actually scheduled each step, not against the step the screen is showing, so it lands where you played it at any tempo. Your own hit is the sound in that pass; the row plays it from the next loop on. The genie never writes on those rows and still hears everything you record. In the same release the MUTE and SOLO buttons gained room — ten pixels apart instead of three, with wider tap targets — and on tablets the machine runs edge to edge to pay for it. The page grew from about 405 KB to about 425 KB.

Addendum, 2026-08-31 03:19 (UTC) — this note is about the steps, the card's asks, the names on the board, and the page-size row above. Since v0.13.0 a step can play only sometimes: light the ? sometimes button beside ✦ Mutate (the button that shuffles a few of your hits at random) and a tapped step turns dashed with a small ?, playing about half the passes — the machine breathes; the genie hears those steps as ? and never writes one, and ✦ Mutate may now turn up to two of your hits into sometimes-hits. The "drop a bar" chip is now brighter ✦ — one tap writes the word brighter into the refine box and runs it, so you see what an instruction looks like. Asking for a reading now also NAMES an untitled track — the same wish, the same tamper-evident seal a name has always carried — so grooves posted from the switch's one tap arrive titled; the twenty-nine grooves already rotating nameless were each given a sealed name by the genie on 2026-08-31, and a card with no name now says so in dim letters rather than saying nothing. The genie's answers also scroll into view when they land off-screen, Readings that contain a { are no longer mangled. A separate, older fault had trimmed two characters off every reading since the feature first shipped; that is fixed too. The words of the release grew the page from about 425 KB to about 440 KB.

Addendum, 2026-08-31 08:34 (UTC) — this note is about the numbers table above, which is re-measured here in full for the first time since 2026-08-28; the readings between those dates were of the older, slower flows. Median of three warm runs from our own web server through the public site: a typed vibe to a finished beat 3.99 seconds (was about 7), the genie describing your beat 0.68 seconds (was about 1.5), a photo to a beat 4.84 seconds (was about 8), the voice's first words 0.85 seconds on a first read and 0.24 on a repeat (was 1.5 and under 0.1 — the repeat figure rose because the voice now says more). Most of the speed-up is the 2026-08-29–30 work described in earlier notes: the models answering at the size they are pinned at, and a faster card. Two small corrections ride along, caught by this weekend's review: the first wish after the 2026-08-29 reboot took 15.3 seconds, not 23.7 — the 23.7-second reading was a later wish paying the same reload — and the sentences above now say so.

Addendum, 2026-08-31 11:39 (UTC) — this note is about the two rows of your own, the sounds they can play, and a new corner of the page, and about the size row above. Since v0.14.0 the TUNE and DECAY knobs on rows 11 and 12 work: tune bends the chosen sound a full octave either way, like a record played fast or slow, and decay trims its tail — and because that changes how a groove sounds, a moved knob becomes part of the sealed identity a groove carries (a knob in its resting place says nothing, so every groove made before today keeps its name and its seal; and the top half of the decay knob, which cannot add tail a one-shot never had, is honestly the same sound as the middle and seals as such). The sounds themselves are twenty-one now: a record scratch — synthesised like everything else here, a burst of noise through a whistling filter that whips up, down and up again — joined the list on every pad and both rows. At the foot of the page, beside the joke chips, take a challenge ✦ deals one card from a deck of forty-eight constraints — no kick, everything a little sometimes, a beat your grandmother nods to — no score, no timer; asking the genie for a reading is the victory lap. And on the board, the "remix of a groove" note is now a button: tap it to hear the groove this one grew out of, and ↩ Back brings your own beat home. The knobs, the deck and the scratch grew the page from about 445 KB to about 465 KB.

Addendum, 2026-08-31 13:47 (UTC) — this note is about saving your groove as a sound file, about the machine's swing, and about what the page keeps on your device, plus the size row above. Since v0.15.0 the share sheet carries a ⬇ button: it renders one, two or four bars of exactly what you hear — mutes, solos, sometimes-steps as the coin falls, your rows' tune and decay — into a WAV file, entirely on your device, and hands it to your tablet's own share sheet (or downloads it elsewhere); a bar count you pick is remembered on your device. Building it uncovered something older: the machine's swing had been stretching the gap after every off-beat and never giving the time back, so the downbeats of a swung bar drifted late — about twelve percent long at the heaviest genie swing — and a file cut at the bar line would have lost its last hits. Swing is now the classic shape: the off-beat is delayed, its pair gives the time back, and a bar is exactly a bar. Swung grooves sound slightly tighter than they did yesterday; every saved groove and every seal is untouched, because a groove's identity has always recorded the swing as a number, not as a timing. Two small corrections to the list of what stays on your device: it now also remembers which version of the board's notice this device has read (corrected 2026-09-09: this note said "whether you have posted to the board before, so a one-line promise can retire itself", and that stopped being true at v0.64.0 — the flag holds the notice's own id now, so a device that posted last week is shown the line again the moment the wording moves) and your saved bar count — seven small things in all, none of them about you (eight since v0.16.0 — see below). The button and its machinery grew the page from about 465 KB to about 490 KB.

Addendum, 2026-08-31 18:16 (UTC) — this note is about not losing your work, and about the list of what the page keeps on your device. Since v0.16.0 the page saves your beat the moment the tab goes away, not on a five-second timer; ↩ Back remembers your last four takes instead of one (the little forward arrow still works); and if you open the lab in two tabs at once, the older tab now notices, stops saving over the newer one's work, and keeps one sentence on screen telling you so until you reload it. That tab check adds an eighth small thing to the on-device list two notes above: a random id each open tab makes up for itself so two tabs can tell each other apart — like everything on that list, it says nothing about you.

Addendum, 2026-08-31 21:24 (UTC) — this note is about the words on this page, not the lab's behaviour: nothing in the code changed. The section on the board above now opens with the sentence this page has been circling since it was first published on 2026-08-27 — strangers can interact, leave their own art, and leave without a trace of who they were — named as what it is: the design test every feature of the board has to pass. It was always the rule; now it is written down.

Addendum, 2026-09-01 00:20 (UTC) — this note is about the beat arriving before the words, the page installing like an app, a name that used to vanish on its way to the board, and the size row above, which drops by nearly half. Since v0.17.0 the genie answers a make or a tweak beat-first: the machine is set up and playing the moment the beat is shaped, while the aside is still being typed. On the usual machine the whole answer arrives so fast that this buys only about an eighth of a second (measured live at this release, median of three: the beat landed 0.13 s before the words finished, of a 3.9 s wish) — the reorder earns its keep on a slow or busy day, and in what it forces the lab to be honest about: if the connection dies in between, the lab now keeps the beat that landed and says which half arrived ("its beat landed, its words didn't"), never a beat it built over yours. The page can live on a home screen now (a real icon, full-screen, still nothing to install and nothing to agree to), Cmd/Ctrl+Z walks the same ↩ Back your thumb uses, quick messages queue instead of trampling each other, the two knobs grew invisible finger-room, and the painters go to sleep when the machine is stopped — battery unspent on a page doing nothing. Two corrections to earlier notes, counted plainly: the note of 18:16 above says the tab id was "an eighth small thing" on the on-device list — the list is NINE now (the ninth remembers whether the lab has said its one warm sentence after your first genie beat, so it is said once, ever); and the size row: the page's own script comments — a fifth of a megabyte of the workshop explaining itself to itself — no longer ship, so the page fell from about 490 KB to about 295 KB with every line of code still there. "View the source and you are looking at the whole thing" still holds for the code; the commentary now lives in the workshop's repository, and a reader of the served page sees working, uncommented code. And a name bug a player caught the same evening, fixed in the same release: have the genie tweak a track ("brighter"), hit BEATS → VIBES, put it on the board — the card said "Yellow Silk", the board said untitled. A tweak's name descends from words you typed, so it can never carry the seal the board demands; the reading now replaces such a name with the genie's own sealed one — visibly, before you post, so the card and the board always show the same name — while a name YOU gave a track (name it ✦) is never taken back by a read. The closing note at the foot of the lab also stopped being a wall of text: what it says now, it says in four short pieces, and the sentence at their heart is the one this guide's board section opens with.

Addendum, 2026-09-01 02:56 (UTC) — this note is about the sounds the pads and the two rows of your own can play, which were twenty-one in the note of 2026-08-31 11:39 above and are twenty-two since v0.18.0. The new one is the Cut: a second record scratch, the tight "chick-a" a DJ cuts on the crossfader — two flicks of filtered noise with a measurably silent gate between them, over in about eight hundredths of a second, because the first Scratch (which is unchanged, as every sound here always is) rings for about a quarter second and smears across steps at drum-and-bass tempos. It was tuned and sealed against pre-registered measurements before it shipped, and the page now re-measures it on every test run — including one check that exists because a reviewer deleted the second flick entirely and everything still passed: the lab now verifies the "a" of the chick-a actually sounds. The genie also learned to deal both scratches into the sample pads — its menu of sounds had been two behind the machine's. The counts elsewhere on this page that say twenty-one now read twenty-two; the size row is unchanged (about 295 KB).

Addendum, 2026-09-01 05:50 (UTC) — this note is about a promise, because nothing a visitor can see or hear changed in v0.19.0, and that was the entire point of the release. Every groove made in this lab now quietly carries the era of its sounds — this era, the first one, is simply the absence of a mark, so every link ever shared and every groove ever posted is already stamped, retroactively, without a byte of it changing. The promise this buys, written here so it binds: the lab's sound set will someday grow a second era ("sound packs"), and when the first era is sealed, everything made in it will keep playing at its own permanent address, with its own sounds, exactly as it sounded — forever. A groove that wanders into an era with different sounds will say so in one plain sentence and offer one tap back to the room it was made in. The machinery that keeps this honest shipped tonight and is already standing guard: the era of a groove lives inside its tamper-evident seal (so nobody, including us, can mislabel one), and a frozen copy of yesterday's entire lab now runs against every future version of our server on every test run, so a change that would break the oldest room fails our tests years before that room exists. The page grew from about 295 KB to about 292 KB — the machinery is mostly invisible even to the scale.

Addendum, 2026-09-01 08:03 (UTC) — this note is about the ⚄ die beside the vibe box, and it completes a sentence higher on this page. The die that deals "another idea" into the box has always drawn from the same sixty-four suggestions; since v0.20.0 it leans toward what this room actually asks for. The wish ledger described above — the one that "never leaves the workshop" — now sends exactly eight integers to the page: how many recent wishes named each of the die's eight genre families, counted through the very same matching the die itself uses. Not one word travels; the counting tool refuses to run at all if its output could contain a ledger line, and the dated receipt for the current lean is published in the workshop's repository with the window it counted and a column we added on a reviewer's insistence: how much of the count was visitors accepting the page's own suggestions verbatim (62% this window), so the loop of a page learning from its own echo stays visible every time the count is refreshed. The lean is gentle by construction — 2.23 to 1, hottest family over coldest, identically per family and per suggestion — and the first suggestion you see on arriving is still drawn perfectly evenly: the lean is the die's opinion when you ask for another, never the house's default taste. House music, if you were wondering, currently leads the room.

Addendum, 2026-09-01 12:10 (UTC) — this note is about the ⚄ die's lean, described two notes above, and it carries a correction to that note's last sentence; it is also about the lab learning to be used by every kind of hand. A deep review of the last seven releases found that most of the lean's count was the page hearing its own suggestions accepted back — and worse, that refreshing the count would compound that echo release over release, roughly doubling the lean within five refreshes. Since v0.20.1 a suggestion accepted verbatim counts for nothing: the die learns only from words nobody put in the box for you, the receipt still prints how much of the window was echo (62 % this one), and the lean is now a gentler 1.63 to 1. The correction: on words people actually composed, house does not lead the room alone — breakbeat and house are tied for hottest. Two more things from the same review, for hands and ears the lab had underserved: all twenty-four tune and decay knobs can now be turned from a keyboard (arrow keys, with the value announced to a screen reader — they had been pointer-only since they arrived), and every short sentence the lab speaks is now announced to assistive tech rather than painted silently. And one honest trade at phone width: the space held open for the genie's incoming reading grew from two lines to three — four would have pushed the card's first ask below the fold by exactly one pixel, and being visible without scrolling won the pixel.

Addendum, 2026-09-01 17:43 (UTC) — this note is about the page's tail and its phone manners, three small things since v0.20.2, none of them sound. On a wide screen the four liner notes at the foot now sit two-by-two at the machine's own width, like the back of a record sleeve, instead of a narrow column stranded in the dark; on a phone the whole tail gained the page's own side margins (it ran edge to edge); and the tempo box shows all three digits of a fast tempo — a vestigial browser control was quietly eating the third one, and it turned out to duplicate the − and + buttons beside it, so it is simply gone. Found the way most of this page's fixes are found: an operator playing the lab and sending a screenshot.

Addendum, 2026-09-01 18:06 (UTC) — this note is about the promise of 2026-09-01 05:50 above (this note first cited it as 05:56, a wrong minute; corrected 2026-09-05), which gained its rehearsal. Nothing a visitor can see or hear changed in v0.21.0: the release built and drilled the machinery a future "sealed set" needs — the exact procedure that will one day freeze this whole lab at its own permanent address, byte for byte, with a dated plaque and a warm sentence for returning regulars — and a test now performs that entire ceremony against a scratch copy on every run, so the day it matters is a rehearsed command rather than a first draft. Two of its words are already written and waiting, years early, and you will read them here when their day comes.

Addendum, 2026-09-01 19:50 (UTC) — this note is about the lab learning to be used by every kind of hand, continuing the note of 12:10 above, and about the page-size row above. Since v0.22.0 the whole drum grid can be played from a keyboard: it is one stop on the Tab key; the arrow keys move between steps, Space or Enter cycles a step exactly as a tap does (off, on, accent, off — with the sometimes-step where it applies), Home and End jump to a row's two ends, and each step tells a screen reader its row, its number of sixteen and its state as it changes. Space only touches a step while a step holds the focus; anywhere else on the page it still starts and stops the beat. Every control now answers "what am I" to assistive tech — the sweep closed more gaps than we had listed, among them the five sliders, the six pad choosers, the eight suggestion chips and the twenty-four tune and decay knobs — and the genie's reading is announced once, after it has finished arriving, never as fragments; the board's carousel stays silent when it turns. The switch that puts a groove on the board now wears the same gold as MAKE IT, but only in the moment a groove can actually go up; in every other state it keeps its quiet look, so the gold means one thing: this can go on the wall now. Two honest notes from the review. First, in the light theme that gold measures 3.84 to 1 against its dark lettering on the brighter end of the gradient (4.57 to 1 on the darker half, where the letters sit) — below the 4.5 the accessibility guideline asks for, MAKE IT's own number since the day it shipped, and the same wherever the gold is used, so we are reporting it here rather than quietly fixing one button. Second, the review caught our new focus ring erasing the play-head outline on whichever step held the caret, and it was fixed before it shipped. The page grew from about 295 KB to about 318 KB — names and keyboard plumbing are markup, and markup is bytes; the row above is updated.

Addendum, 2026-09-01 20:49 (UTC) — this note is about what the workshop keeps of the board and of the wish ledger, both described above, and it adds nothing a visitor can see or hear. Since v0.23.0 the board file is copied once an hour into a ring of one hundred and sixty-eight copies beside it — seven days, the oldest hour falling off as the newest lands — because a groove that vanished from the board one August night turned out to have vanished between two nightly mirrors, unseen. Nothing new is recorded: the ring holds the same sealed words the board already shows, and nothing about who put them there. The wish ledger, kept forever as this guide says, is now rolled into a compressed monthly archive on the first of each month; the reader that counts it reads every archive and the live file as one ledger, so the counts on this page do not move when a month closes. Neither job restarts the machine the genie runs on: every line the ledger writes is opened and closed on its own, so a file can be renamed under it and not a word is lost. The page's bytes are unchanged; only the version stamp in its footer moved.

Addendum, 2026-09-02 02:00 (UTC) — this note is about the note of 2026-09-01 19:50 above, and it corrects one of its sentences. That note said the light theme's gold measured 3.84 to 1 on its brighter stop and that we were reporting it rather than quietly fixing one button. Since v0.24.0 it is fixed, and not for one button: the light theme's gold is a single colour token, so MAKE IT, the share buttons and the switch that puts a groove on the board all darkened together by the smallest step that clears the guideline's 4.5 to 1 on both ends of the gradient — the brighter stop now measures 4.53 to 1, the darker 6.51 to 1, and the dark theme did not move. Three smaller things for assistive tech in the same release: when two rows hold the same sound, each now tells a screen reader which row it is, without changing a printed label; the photo you give the genie is no longer marked as decoration; and the buttons that lead with a glyph — reset, random, back, play and stop, the share and listen controls — now speak their word instead of the glyph. The page grew from about 318 KB to about 323 KB; the row above is updated.

Addendum, 2026-09-02 03:50 (UTC) — this note is about four numbers on this page that a deep review of the last five releases found wrong, and it corrects them; nothing on the lab itself changed. First, the ⚄ die's lean, described in the notes of 2026-09-01 08:03 and 12:10: the 1.63 to 1 those notes give is the lean a single suggestion carries, and that figure stands — but the notes also said the lean was the same per family, and it is not. The die picks a family in proportion to its size times its weight and then one suggestion inside it, so a family with more suggestions comes up more often before any lean applies: a perfectly flat die would already favour the largest family 8.5 to 1 over the smallest, and with today's lean the spread between families is 12.3 to 1 — house comes up on about a third of taps, boom bap on about one in thirty-six. Measured by drawing the shipped page's own die four hundred thousand times and confirmed by the arithmetic; the receipt file that publishes the counts now prints the family column that way. Second, the sentence near the top that said a typical wish takes six to ten seconds was written on publication day and never caught up with the table two sections below it; it now says about four seconds, which is what the table has measured since 2026-08-28. Third, the sizes: the note of 2026-09-01 05:50 said the page grew from about 295 KB to about 292 KB, which is a shrink written as growth and wrong on both ends — poured from the tags, the page went from about 296 KB to about 299 KB in that release; and the table's old "about 295 KB from v0.17.0 to v0.21.0" hid ten kilobytes of growth across four releases — it was about 295 KB at v0.17.0 and about 305 KB by v0.21.0, so the a11y markup of 2026-09-01 19:50 added about 13 KB, not 23. Fourth, the sentence describing what a describe request carries said "and nothing else" while it had, since the two rows of your own and their knobs arrived, also carried what those rows play and how their knobs are set; the sentence now lists them. Every figure above was reproduced by two independent readers before this note was written.

Addendum, 2026-09-02 04:36 (UTC) — this note is about a deep review of the last five releases, whose visible half shipped in v0.25.0, and about the page-size row above. Six things a visitor with a keyboard or a screen reader can now feel: the focus ring that walks the drum grid no longer fades with a dimmed row (on the twelfth row, which opens unassigned on every load, it measured 1.5 to 1 and now measures 4.6); the switch that puts a groove on the board wears its gold only when a tap will actually post — while the genie is resting it takes a quiet skin, so the sentence two notes above, that the gold means this can go on the wall now, is now exactly true; the light theme's dim ink clears 4.5 to 1 on every surface it sits on; ten hover colours that painted a failing green over the outline ink now paint the outline ink; the page has headings and a main landmark, so a screen reader can walk its structure and not only its names; and the three bars-to-save buttons say their digit in their spoken name. One thing under the hood: if the beat is changed while the genie is reading it for the board, the switch asks again instead of posting words about a groove that has moved on. And the row above: the page grew from about 323 KB to about 336 KB, and every added byte is commentary — the contrast receipts now live beside the rules they measure, inside the stylesheet, where the next reviewer will find them. We chose to ship the receipts.

Addendum, 2026-09-02 07:24 (UTC) — this note is about three small things a visitor can see since v0.27.0, and about the page-size row above. First, the two row chips under the machine — the little "11" and "12" beside the two sound choosers — used to print their number in that row's own colour, and in the light theme nine of the twelve voice colours sat under the 3 to 1 a boundary owes, the worst at 1.7. They now print the number in the page's ordinary ink inside a ring in the row's colour, the ring darkened by one uniform rule so every one of the twelve clears 3 to 1 in both themes. Second, the ✦ Mutate button rests on the slightly deeper green every other outlined control already wears, so its label reads at 4.8 to 1 instead of 4.3. Third, the six sample pads are a fractionally shallower bevel: the bottom edge of their gradient is one shade lighter, so a label at the foot of a pad — none exists today — would still clear 4.5 to 1. The measurements were taken by the page's own accessibility suite, which now walks all twelve chips, both states of the button and every stop of the pads' gradient, and reddens if it finds fewer than twelve chips. And the row above: the page grew from about 336 KB to about 340 KB, again all commentary — the two receipts sit in the stylesheet beside the rules they measure.

Addendum, 2026-09-03 01:11 (UTC) — this note is about the genie's answers when the lab cannot read them, and about the page-size row above. The genie answers in a small machine-readable envelope that the lab unwraps into words. Until v0.29.0, an envelope the lab could not unwrap — one written out on several lines, say, or cut off mid-sentence — was shown to you exactly as it arrived, brackets and quotation marks and all, and could even be sealed and put on the wall. A reader of this page saw one such envelope on the evening of the second. Six things changed. An answer the lab cannot read is now answered with one sentence — the genie mumbled, ask again — instead of the envelope. Such an answer is never given the seal the board requires, so it can never reach a stranger as a reading or as a track's name. The small receipt under a result now says what shape an unreadable answer arrived in and how long it was, and never what it said. Tapping ✦ Refine with an empty box now says what to type and puts the cursor there, where it used to do nothing at all. The genie's answer to a tweak now scrolls into view when it lands off-screen, as a name and a DJ intro already did. And each of the four asks, the tweak box and its button say what they send when you rest on them. Under the hood the reader that unwraps the envelope is one function shared by all three flows, tested against three hundred and ten hostile envelopes; a week of the engine's own journal, read first, showed three hundred and thirty such asks in a row marked fine, which is how an unreadable answer had been hiding. The row above: the page grew from about 340 KB to about 343 KB, the guard and its receipts.

Addendum, 2026-09-03 06:2x (UTC) — this note is about four things the machine does that this guide had never explained in its own words: the swing dial, the two tone dials, the filter, and what happens to the lab when the network goes away. It is written now because the lab is about to be able to answer questions about itself, and it may only answer with sentences this guide contains. Swing delays every off-beat — the gap after each even step grows, and the gap after the odd step that follows gives exactly that time back, so a pair of steps always spans two steps and a bar is always exactly a bar; at zero the beat is dead straight, and the dial runs to sixty, where the off-beats lean as far back as the machine allows. Warmth drives the whole mix through a soft saturation curve that is always in the path: at zero it is at its gentlest, and as the dial rises the loud parts round off and thicken the way tape or a warm amplifier does. (Corrected 2026-09-04: this sentence said the mix was clean at zero; the curve has no bypass, so a loud signal at zero is already rounded a little, and the dial sets how hard it is driven.) Space sends the mix into a short reverb — a room about a second and a half long, built from noise when the page loads — and the dial is how much of the room you hear, from none to a good deal. The filter is a low-pass that sweeps from 120 Hz to 20 kHz: fully open it changes nothing, and closing it takes the top off every sound at once, which is the oldest DJ move there is. And the network: once the page has loaded, the machine needs nothing else — the beat, the sounds, the pads and the sequencer run entirely in your browser, so if your connection drops the music keeps playing and every step you tap still lands; only the genie, the board, the voice and the ✎ note to the workshop need us, and each of them says so if it cannot reach us — except the board's own feed, which stays out of sight until it can, the way an empty board does. (Corrected 2026-09-04: this sentence named three of the four things on the page that reach the workshop; the ✎ note button was always the fourth, and it says so when it cannot. Corrected again the same afternoon: the board's feed never said so — a board that cannot be fetched is simply not shown; every board action you take yourself does say so.)

Addendum, 2026-09-03 11:44 (UTC) — this note is about three things a reader of this page ran into while remixing a board groove on the evening of the second, all fixed in v0.30.0, and about the page-size row above. First: a tweak that changed the beat but came back with nothing to say used to leave the note area blank, so the first refine after a remix looked dead; it now says so on the card. Second: the card the board shows you right after you post — your own groove, with its fresh reading — had a green remix of a board groove button, a ▶ listen now, a ✦ nice and a 🔈 that all did nothing, because every one of them was reading a different card than the one on screen; all four now work on that card, and it holds the stage for as long as its own reading takes rather than the bare twenty-four seconds. Third, and the one that mattered most: listening to a stranger's groove used to arm the gold switch, so one tap read the beat again — a wish spent on words the board already held — and put up a second copy with a new name; the switch now says already on the board — change something you can hear to make it yours, cannot be tapped, and opens the moment you change one thing you can hear. The board itself was never fooled — it refuses an identical groove by construction — but the switch had promised something the guide says two notes above, that the gold means a tap will post, and it had not kept it. The row above: the page grew from about 343 KB to about 344 KB.

Addendum, 2026-09-03 12:56 (UTC) — this note is about four moments on the page that used to happen in silence, about one sentence in the body above that had the order of things backwards, and about the page-size row. First the silences, all fixed in v0.31.0: tapping MAKE IT ✦ with nothing in the box did nothing at all — it now says tell the genie a vibe first — or tap ⚄ for one and puts the cursor in the box; tapping one of the three built chips while a wish was already running was swallowed without a word — it now says the genie is busy; and a make or a photo whose beat landed but whose words never arrived left the card blank — like a tweak since v0.29.0, it now says its beat landed, its words didn't. MAKE IT ✦ also gained the tooltip its neighbour already had, and it names the one thing that matters: this button replaces the beat on the machine. Then the sentence: the body's account of a wish said the aside arrives first and the beat a few seconds later, which has been the reverse of the truth since v0.17.0 — the beat lands first — so the sentence is corrected in place, with a note beside it, under this guide's own precedent for a body correction. Behind this release sits a table of forty-three states — every state the genie's panel, the board switch and the lineage button can be in, with the words each shows and the taps each allows — of which forty-two are now pinned by the suites (the forty-third, typing, is unpinnable because nothing on the page yet reacts to what is in the box). The row above: the page grew from about 344 KB to about 345 KB.

Addendum, 2026-09-03 15:59 (UTC) — this note is about a new thing the genie does since v0.32.0: it answers questions about the lab, and it does so without a wish. Type a question into the vibe box — how does this work?, who can see my beat?, what does swing do?, does it work offline? — and the answer arrives in the note area the way the genie's words always do, word by word at the same pace. But no model is asked: the page carries twenty-five written answers (twenty-six since 2026-09-04, when the question above the body — do I need the genie to make a beat? — joined them, first), each one derived from a sentence in this guide (the build refuses to pour if a cited sentence changes and its answer did not), matched by the words you typed, on your device, with nothing sent anywhere. The small receipt under such an answer says so — bank · 0 wishes · no model — and the rate gate does not count it. A question the lab does not know gets one fixed sentence pointing at this guide. Nothing about a question is kept: no request, no ledger line, no journal line carries what you typed, and the suites that prove it plant a random nonce and search every file the engine writes for it. The voice can read such an answer aloud, by its number — the sentence in the body above about the voice reading only sealed words gains that one clause today — and an answer can never be sealed for the board or put up as a groove's reading. Two more numbers: the page grew from about 345 KB to about 363 KB, of which the twenty-five answers are about 12 KB; and the matcher caps what it reads at 400 characters, so a very long paste cannot stall the music.

Addendum, 2026-09-03 21:05 (UTC) — this note is about the biggest change to the top of the page since it was published, shipped in v0.34.0, and about the page-size row above. There is now ONE box where there were two. The old page had a vibe box with MAKE IT beside it and, lower down, a second box for telling the genie what to change; in the lab's first hundred and fifty wishes nobody used the second one. Now everything you type goes into the one box, and the lab decides what you meant by a simple rule it never bends: a verb at the front runs that verb — make a beat, dusty lo-fi starts over (and is the only thing that does), name it, describe it, dj intro; a question the lab knows — how does this work? — is answered from the page's own bank for free, as the note of 15:59 above describes; and anything else — darker, add a fill, half-time — changes the beat you have. Nothing ever guesses, and the button beside the box says which of those it is about to do, in its own word, as you type. Under the box a line says the same in a sentence — this will change the beat you have — and, once there is something of yours on the machine, carries a small amber ✦ new vibe at its right end that clears the machine and starts you over from words; it never touches the board. Some things moved because of where they belong: the four asks sit in one row under the card, and the third of them changes with the day so the row teaches a new tweak each morning; BEATS → VIBES is now called describe it; ↩ Back sits directly beside ✦ Mutate as its equal partner — mutate, listen a while, go back is the lab's most repeated gesture, and Back keeps whatever you had typed; Clear sits under the grid it clears, so nothing in the preset row can destroy anything; and the share button in the transport turned green, so the gold now means one thing on the whole page and is never worn by two controls at once — on a cold page nothing is gold at all, because a fresh page has nothing of yours to post. The help card's four steps were rewritten to name the controls as they are now printed, and gained a fifth: or just ask it. The photo button's hint says it builds a new beat; the ⚄ die, once a beat is yours, writes make a beat, … so you can see the verb; the / key jumps to the box; and while the genie is resting a question is still answered from the button. The row above: the page grew from about 363 KB to about 394 KB, most of it the router and the states it pins.

Addendum, 2026-09-04 02:20 (UTC) — this note is about the first minute a stranger spends with the one box, which a deep review of the last eleven releases found wanting in several small ways, all fixed in v0.35.0; about two sentences in earlier notes that were no longer exactly true; and about the page-size row above. First, the fixes a visitor can feel. On a fresh page, words that merely look like a question — do a jungle beat, how about jazz, jungle? — now make a beat out of themselves instead of being told they are outside the lab, and the chip that used to erase such words is gone; a question the lab cannot answer now only happens once a beat is yours, and it arrives over a chip that re-sends your words rather than deleting them. make a beat! and make a beat please say tell the genie a vibe first instead of spending a wish on a vibe of one character, and a line of only emoji or punctuation spends nothing. The gold button's word settles at each space and at Enter, not mid-word, so it no longer flickers and a screen reader hears one verb per word. The chip row under the card waits until something on the machine is yours; the ⚄ die is greyed while the genie works and never writes over words you typed; ✦ new vibe clears a muted row too, so the page can always get back to nothing of yours yet, and it puts the cursor back in the box; ↩ Back only ever goes back. On a fresh page the board switch is shut and says nothing of yours yet — make a beat first, then the board will take it, instead of offering to post the demo for a wish. The stranger's card on the board stops rotating while your pointer, finger or keyboard is on it, and the board refreshes itself every minute while the tab is open, so grooves your friends put up appear without a reload. The transport's ⤴ share the groove, ✦ Mutate, ↩ Back, ↪ forward, ● REC and ✦ sometimes, and the ✦ new vibe and Clear the grid buttons, are at least forty-four pixels tall; ▶ PLAY (40 px), TAP (32 px), the tempo field, the five dials and the preset row are not yet, and are a separate note. (Corrected 2026-09-04: this sentence said every control in the transport; the roster above is what was measured, per the a11y suite's own floor list.) The box takes three hundred characters and says so at the limit. A question about a photo is no longer answered with the answer about sounds — the matcher now refuses a near-miss that carries a word the answer never uses, which cost it a handful of paraphrases and bought back fourteen wrong answers. The chip under a bank answer prints the verb it runs; a wish refused while the genie rests clears the answer that was standing on the card; and the strata→signal strip at the foot is dark on a dark page. Then the two sentences. The note of 2026-09-03 15:59 above says a question the lab does not know gets one fixed sentence: that is true only once something of yours is on the machine and your words nearly match a question the lab knows; otherwise your words go to the genie as a wish — a new beat on a fresh page, a tweak once a beat is yours — and are kept the way every wish is kept. And the note of 2026-09-03 21:05 above lists the verbs a line can start with and says make a beat is the only thing that starts over: start over and new vibe, typed as whole lines, also clear the machine — they are the amber ✦ new vibe in words, and ↩ Back undoes them. The row above: the page grew from about 394 KB to about 407 KB, most of it the pins that hold these fixes in place.

Addendum, 2026-09-04 09:37 (UTC) — this note is about three things: what changed in the lab's engine this morning in v0.36.0 and v0.36.1, which a visitor feels only as fewer refusals; the titles of forty-four grooves on the board, which were cleaned at 09:33 (UTC) today; and one hundred and twenty-three lines in the workshop's own service log from the lab's first day, which were removed at 09:34 (UTC) today. First the engine. When a tweak comes back from the genie naming only the dials it moved — swing, warmth, space, or the pattern — the lab used to refuse it and say the genie mumbled; since v0.36.0 it reads such an answer, and a fresh beat keeps exactly the rule it always had (a wider rule applied to it in the first draft threw the model's whole beat away, and was caught before it shipped). A seat or the voice that does not answer is now written in the service log as what it was — a seat down, the voice down — where until today that log said the request had worked; nothing a visitor sees changed, and nothing about a visitor is in those lines. Then the titles. The genie names a groove from a short prompt that asks it, among other things, for a flavour — a place, a fabric, the weather — and for some weeks the model had been echoing that word back into the name: Kitchen Tile Shuffle flavour: a room in a house. The engine now cuts its own prompt out of every answer before sealing it, and refuses to seal a title that still carries it. The forty-four grooves already on the board with such a title — of one hundred and four kept, and twenty-one of the forty-eight a visitor sees at once — were re-sealed by the workshop at 09:33 (UTC) today, under the same key as every other post, with the tail cut off and nothing else touched: the beats, the readings and the sleeve notes are exactly as they were, and a card that read Kitchen Tile Shuffle flavour: a room in a house now reads Kitchen Tile Shuffle. A count over the whole board afterwards found none left; the board as it was before the change is kept in the workshop. Last, the lines. The list above says that your address is never written to disk. For the lab's first day — from 22:24 (UTC) on 2026-08-26, the earliest such line the log holds, until a fix at 17:15 (UTC) on 2026-08-27 — that was not yet true of the service log: the one line the service writes per request carried the visitor's network address. One hundred and twenty-three such lines were written, none since, and they sat in three archived files of the workshop's system log until 09:34 (UTC) today, when the three files were deleted; a count over the whole log now finds zero. It is recorded here because the sentence above was published on 2026-08-27 and the lines outlived it by eight days. The page-size row above did not move: v0.36.1 changed the engine and the footer's stamp, not the page.

Addendum, 2026-09-04 10:03 (UTC) — this note is about the genie's manners — the sentence in the body above that says the genie grants three wishes in any thirty seconds and a hundred and twenty a day from any one network address — and about a window in which the workshop has set those numbers wider on purpose. From 10:01 (UTC) on 2026-09-04 until the morning of 2026-09-08 (UTC), the door is six wishes at once and four hundred and eighty a day from one address, because a room of friends on one wifi is one address to the lab, and a long weekend of them would spend the everyday allowance in about twenty minutes. Nothing else moved: the ceiling that protects the machines themselves is where it always is, a stranger's wishes still cost a stranger's seconds, and the sentence above is still the rule — this note is the exception, dated at both ends, and a second note will carry the minute the door went back. Two things follow from the numbers being on this page. The lab's own answer to what is a wish gives the everyday numbers during the window, because that answer is derived from the sentence above rather than from the workshop's calendar — and so does the page of those answers on this hub, The Beat Lab, asked and answered (exhibit thirty-eight), which carries its own dated line about the window at the top. And the page did not change: the window is two lines in the service's configuration, not a release.

Addendum, 2026-09-04 11:16 (UTC) — this note is about four small things on the page since this morning's notes, shipped in v0.38.0, v0.39.0 and v0.40.0, and about the page-size row above. First, the Clear button. The note of 2026-09-03 21:05 above says Clear sits under the grid it clears; since v0.40.0 it does not. It sits below the six sample pads, out of the grid's eye-line, it is called Clear the grid, and it asks first: a tap opens a small question — clear every step on the grid? — with keep it already chosen, and only the answer clear the grid empties the rows. The dials, the pads and your two rows' sounds stay either way, and ↩ Back brings the emptied beat back, as it always could; the page now says so the moment it clears. This came from a room playing the lab: one stray tap on a big button in front of everyone emptied the beat, and that is not a thing a party should be able to do by accident. Second, the doors. The twenty-five answers the genie gives about the lab are also a page of their own on the research hub, The Beat Lab, asked and answered, and the lab now links to it twice, in the same voice: at the foot, beside read how it works, and at the bottom of the ? card; both links read asked and answered (FAQs), so a search of the page for FAQ lands on them. Third, the chip under the card that teaches a tweak a day has traded darker for more swagger. Fourth, the row above: the page grew from about 407 KB to about 411 KB, almost all of it the question Clear now asks and the rules that draw it.

Addendum, 2026-09-04 15:50 (UTC) — this note is about a review of the seven releases from the one box (v0.34.0, the evening of 2026-09-03) to Clear the grid (v0.40.0, this morning): five readers over the code, the tests, the sentences on these two pages and the ways a room of strangers could misuse the lab, a second reader set to refute each finding, and twenty-two that stood, all fixed today in v0.41.0 and v0.42.0. What a visitor can feel. Clear the grid asks first on every browser now, including the one the family's iPad runs, which has no modal dialog: there, the same question opens in the flow under the button. A board card you are holding, or having read aloud, is never taken away by the board's own minute refresh, and the hold is three facts — a pointer resting, a finger on it, the keyboard inside it — not one. The chip under the card that teaches a tweak a day prints the word it will send, even across midnight. The bank's make chip says on its face that it replaces the beat on the machine, and a ✦ nice on a stranger's groove says so when the board cannot be reached. Then the ones a visitor could not have seen. Since the morning of 2026-09-04 (v0.36.0), a tweak whose reply came back without a grid had quietly turned every sometimes step in your own grid into a plain hit; from v0.42.0 the lab leaves your grid exactly as it was. A photo whose eye is down, and a tab that leaves in the middle of a wish, are written in the workshop's service log as what they are — a seat down, a visitor gone — rather than as a success or as a seat outage that was never one. The board's door cuts the genie's own note-to-self out of any title it is handed, so the forty-four cleaned this morning cannot be joined by a forty-fifth. And the names of the workshop's own machines, which the page had carried in its source as a list of words to keep out of a debug line, have left the page: the keeping-out happens on the workshop's side now. Two sentences on this page were corrected in place earlier today and say so beside themselves: the note of 2026-09-04 02:20 on which controls are forty-four pixels tall, and the network sentence of 2026-09-03 06:2x on the board's silence. The row above: the page grew from about 411 KB to about 415 KB, most of it the in-flow question and the pins that hold this round in place.

Addendum, 2026-09-04 20:16 (UTC) — this note is about the lab on a phone, which a reader of this page had not been shown until today, and about the page-size row above; it also moves one sentence in the note of 2026-09-03 21:05 above. First, what a phone found. On an iPhone from 2019 running the iOS of 2021, the genie's words never appeared — the beat changed, the words did not — because every revealed word rested invisible and trusted an entrance animation to bring it in; since v0.43.0 a word is visible by default and the animation only decorates it, and the same release stopped a tap on the gold button being spent on the label settling under the finger. A tweak that asked for more swagger came back as the genie losing the thread, twice: the model's reply was being cut off mid-sentence by a token cap sized for a shorter answer, raised in v0.44.0. Then the phone's own layout, shipped in v0.45.0. The four asks under the card — name it, describe it, the day's tweak, dj intro — now sit directly under the box, between the line that says what the box will do and the card, so a phone shows them without a scroll; the note of 2026-09-03 21:05 above says they sit under the card, and from today that sentence reads the other way. The photo button moved below the card, which lifts the card by about a hundred pixels on a phone. The gold button, the share button, the photo button, TAP and the theme switch are all at least forty-four pixels tall now, on every screen; the preset buttons are thirty-six, a compromise the code names. The drum grid's row names ride along when the grid scrolls sideways, and its right edge fades only while there is more to the right. The six sample pads, which on that iOS collapsed to a sliver because only a modern rule gave them height, have their height back. And ✦ new vibe asks first, the way Clear the grid does, because it too replaces the beat; typed as a line, it still runs at once. The row above: the page grew from about 415 KB to about 443 KB, most of it the two questions' fallbacks for a phone with no modal dialog, the guard that keeps the page's syntax within reach of that phone, and the pins that hold the phone's layout in place.

Addendum, 2026-09-05 04:34 (UTC) — this note is about the five dials under a finger, and about the page-size row above. The note of 2026-09-04 20:16 above left one thing on a phone measured and unmoved: the five sliders — swing, warmth, filter, space and vol — were sixteen pixels tall to a fingertip, which is why sliding one on a phone so often moved nothing, and a reader of this page, playing it on an iPhone, called that a pain the same evening. Since v0.46.0 each slider sits in a box forty-four pixels tall. The painted control is unchanged — the same sixteen pixels, centred in the taller box — so nothing looks different and everything under a finger is. The transport grew to hold the boxes: at the width of that iPhone it is fifty-four pixels taller than it was, and no width gained an extra line of controls (a wider track was measured too, and refused, because at three of the six widths measured it pushed a control onto a new line). Two more things in the same release: the two buttons under the genie's reading — hear the genie and the board switch — now clear the same forty-four pixels, and every chip on the page clears forty. The cost is stated because it moved: on that iPhone, with both Safari bars showing, the share button at the end of that row now ends one and a half pixels under the first screen where it cleared it by fifteen, on a card the reader has already scrolled to. The page-size row above reads about 451 KB now (measured at v0.46.0; 451,264 bytes served).

Addendum, 2026-09-06 02:05 (UTC) — this note is about two small releases on the day after the dials, and about the page-size row above. First, the sequencer. The note of 2026-09-04 20:16 above made the instrument names ride along when the grid scrolls sideways on a phone, and to do that each name cell had to paint its own solid colour — a flat colour beside the machine's old top-to-bottom shade, which on the morning of the fifth a reader saw as a faint vertical line between the knobs and the steps. Since v0.46.1 the whole machine is one flat surface, the same colour the name cells paint, and the line is gone; the transport, the steps and the knobs keep their own shading. Second, a review of the seven releases from Clear the grid (v0.40.0) to the flat machine, with an independent reader trying to refute each finding, and what it changed in v0.47.0: an error the page catches now clears its message after six seconds instead of pinning it to the screen for the rest of the visit; an answer from the lab's own question bank now scrolls into view on a small phone the way a genie reading does (it was measured landing 169 pixels under the first screen of an older iPhone); the ? card's second step says the asks sit under the box, which is where the note of 2026-09-04 20:16 put them; and the share sheet's one wrapping label is styled again. The same review found nothing that loses a beat or a word, and nothing that lets a stranger make the genie work it should refuse; three smaller things about the engine's own bookkeeping wait for a weekday. The page-size row above reads about 452 KB now (measured at v0.47.0; 451,941 bytes served).

Addendum, 2026-09-07 03:46 (UTC) — this note is about one thing a groove posted to the board records from today that it never recorded before: which of eight families it was built in, and how it came to be built in that one. Until this morning a post held no family at all, and the sentence above listing what a post holds named none. From v0.48.0 every NEW post carries two more small fields. The first is the family: house, techno, boom-bap, lo-fi, break beat, trap, drum & bass or funk — the same eight the lab has always sorted a vibe into, and the same eight the die beside the box draws over. The second is how that family was arrived at, and it is one of four words: a person named it, in words they typed or a picture they gave; nothing they said named one, so the lab reached for house; nobody named one and the lab drew a family at random to build from; or the groove has no family at all, which is what a beat built by hand on the grid is. (Corrected later the same day: there is a fifth word since, for a room the lab worked out for itself from a groove that named none — the note of 2026-09-07 13:10 below says how.) Why the second field exists. A later release will give a track a face, drawn from the groove itself, and a face has to be a fact rather than a coin flip: house because somebody asked for house and house because nobody said anything are two different things, and a post that could not tell them apart would have to guess. This one can. What is NOT written down. Nothing you typed — a family is one of eight ids the page maps every word onto in your own browser before a request leaves it, and those eight words are the whole of what can be stored. Neither field is part of a groove's identity or of the seal on the genie's words, so the same beat at the same dials is the same post it always was, and every seal and link issued before today still checks out. The lab's own door will not refuse a post over either field: a page cached in a tab from yesterday sends neither and still goes up, as a groove with no family, which is the true thing to say about it. (Corrected later the same day: it is no longer the true thing to say about it. A post that arrives naming no family is given one at the door — worked out from the lab's own record of that groove — so an old page's groove is recorded as a family the lab worked out rather than as a groove with none, and it can have a picture like any other; the note of 2026-09-07 13:10 below says how the working-out is done and what it is not allowed to read.) The grooves already on the board — a hundred and thirty of them — carry neither field and are not being rewritten to add one; they read as having no family, and the sentence above says so. (Corrected later the same day: they WERE rewritten. A family was worked out for each of them from the lab's own record of that groove and written onto the board file, so those posts could have a picture like any other; the note of 2026-09-07 13:10 below says how it was worked out and what it was not allowed to read.) Nothing on the page changed for a visitor: no new button, no new words, nothing that behaves differently. The page-size row above reads about 453 KB now (measured at v0.48.0; 453,097 bytes served).

Addendum, 2026-09-07 06:30 (UTC) — this note is about a picture on the board card: what it is made from, what is kept when one exists, and the fact that no picture is being made for anybody yet. Until this release a board card was words only — a title, the genie's reading, and a row of buttons — and the note of 2026-09-07 03:46 above added the first field a groove records about the room it was made in. From today the card has a small square beside those words, and three things can be in it. If a picture has been painted for that groove, the picture. If a person named the groove's family and no picture has arrived yet, a drawn blank in the genie's own colour and the word painting. Otherwise — a family the lab's die rolled, a family nobody named, which is every groove posted before 2026-09-07, or a picture we have taken down — the same drawn blank in the dim, with no caption, because nothing is coming. (Corrected later the same day, and this half is about NEW posts rather than the 130 the note's last paragraph is about: a family nobody named left this list entirely. A post that names no family is now given one at the door, worked out from the lab's own record of that groove, and a groove with a worked-out family is painted like any other — the note of 2026-09-07 13:10 below says how. What stays on the list is a family the die rolled, a family the vibe box fell back on, and a picture we have taken down; and what the card shows for those is not the drawn blank but the empty square that same note describes. The wall's tiles do still draw the blank.) The blank was drawn by the page itself out of thirteen rectangles and is fetched from nowhere; it was re-drawn later the same day, and is still fetched from nowhere — see the note of 2026-09-07 13:10 below. What the picture is made from. The beat and the family, and nothing else: the tempo, the swing, the pattern, the dials. Every word of the instruction the image model is given comes from a fixed list this lab already holds — there is no free-text field anywhere in it — so the promise that nothing you type leaves the page is kept by how the thing is built rather than by a filter over it. The genie's own title is deliberately withheld from the painter for the same reason. What is kept. On the post: the name of the recipe, the name of the model that painted it, and how many steps it took. On disk on our own server, in a directory of its own that is neither the board's nor the website's: the picture, as a file named after the post and the recipe. Nothing about you, and nothing you typed, in either. Under each picture the card prints that model, its step count and that recipe — read off the post itself, so the line is a receipt rather than a label. And it is off. No picture is being painted for anybody as this note goes up: the machinery that makes them shipped on 2026-09-07 with its one switch empty, and this release is the half that knows how to SHOW one. Turning it on is the next release, and the next note dates that. Until then every card on the board shows the drawn blank, which is also the honest answer for the 130 grooves already up there — their family was never recorded. (Corrected later the same day: a family was DERIVED for those 130 from the machine's own record of each groove, and they are painted like any other — the note of 2026-09-07 13:10 below says how, and what it does not use.)

Addendum, 2026-09-07 08:15 (UTC) — this note is about a new grid on the page, called the wall, and about how many of the board's posts it shows. Until this release the board on the page was ONE card at a time: a groove a stranger left, its review, and a row of buttons, turning itself over every half minute or so. The note of 2026-09-07 06:30 above added a small square picture to that card. From today a button on the card's own row opens a grid of the board's newest forty-eight posts at once — each one a picture, a name, a tempo and the first sentence of the genie's reading — and a tap on any of them loads that groove into the machine and plays it, which is the same thing the card's listen now button has always done. Why forty-eight and not all of them. One read of the board hands back at most forty-eight posts, and that limit is deliberate and has not moved; a wall of every groove would be a much larger download for every visitor who opened it. So the wall is the newest forty-eight, it says so above the grid, and it says how large the whole board is beside it. Your own are added to it, however far down the board they have fallen: your browser keeps a claim key for each of your fifty most recent posts, and any of those not already in the newest forty-eight is fetched by name and added at the end with a mark on it. Those keys live in the browser and never leave it, which is why the mark says this browser posted it rather than you posted it — on a household iPad it is one mark for everybody who has used that device. Where the pictures come from. Not from the part of the site that talks to the models: the forty-eight small pictures are plain files served by our web server from a directory of their own, so opening the wall cannot take room from somebody's wish. As the note of 2026-09-07 06:30 above said, no picture is being painted for anybody yet — so on the day this goes up every tile on the wall shows the same drawn blank the card does, and the grid fills in as new posts arrive once the painting is turned on. (Corrected later the same day, twice over: the painting WAS turned on that morning — the note of 2026-09-07 09:40 below dates it — and a family was worked out for the older grooves, so the wall filled in rather than staying a grid of blanks. And the two squares stopped matching: a tile with no picture still shows the drawn blank, which is what this sentence describes, but the CARD shows an empty reserved square for a groove that will never have one or whose picture we took down. The note of 2026-09-07 13:10 below says why.) Nothing on the wall is fetched until you open it: a visitor who never taps the button pays nothing for it at all.

Addendum, 2026-09-07 09:40 (UTC) — this note is about the switch that paints a picture for a groove on the board, which is now set, and about what that changes for a visitor from this release on. The note of 2026-09-07 06:30 above described the small square on the board card and said, in its last paragraph, that no picture was being painted for anybody and that the next note would date the turning on. This is that note: from v0.51.1 the machinery that shipped empty on 2026-09-07 is given its one setting, the address of our own painter, and every NEW groove posted from a family a person named gets its picture within a few seconds of going up — first the drawn blank and the word painting, then the picture, on the card and on the wall. What has not changed: a groove whose family the lab's die rolled, or that the interpreter fell back to because nothing said named one, keeps the drawn blank, and nothing you typed reaches the painter — the instruction it is given is built from the beat and its family out of a fixed list, as the earlier note describes. What has changed since, on the same day: the hundred and thirty posted before the family was recorded no longer keep the blank either — a family was derived for them, and the note of 2026-09-07 13:10 below says how. What the painter is: a small open-weight image model (FLUX.2 klein 4B, Apache-2.0) on one of our own machines, eight steps per picture, about two-thirds of a second of its time each, measured on that machine on 2026-09-07 at 06:05 UTC — 639 ms in the model, 1,115 ms door to door on that box; the leg from the web server to it was not yet measured when this note was written and will be read off the first live picture. How many it will paint: at most twenty-four a day for any one address, at most twenty a minute for everybody, and a post whose picture cannot be made in time simply keeps its blank and is tried again within the hour. (Corrected in a later release the same day: the twenty-four a day is not a ceiling on how many pictures the grooves from one address can ever get, and reading it as one was wrong. It paces the picture painted in the seconds after a post goes up, and nothing else; a post it turns away keeps its blank and is picked up by the catch-up pass within the hour, which spends a budget of its own — four hundred a day across every pass there is. So the two numbers that actually bound the shared machine are that four hundred a day and the twenty a minute for everybody, and the twenty a minute is the one that paces it moment to moment.) The page-size row above reads about 475 KB now (474,567 bytes served at v0.51.1, of which the wall and the card's square account for about 21 KB since v0.48.0).

Addendum, 2026-09-07 13:10 (UTC) — this note is about where the ROOM in a board picture comes from when nobody named one, which changed today for the hundred and thirty grooves posted before this lab recorded a room at all, and about three things on the page that changed with it. What is being counted here: the grooves on the public board, and how many of them can have a picture. The note of 2026-09-07 06:30 above says a picture is painted for a groove whose family a person named, and the note of 09:40 says the rest keep the drawn blank — and between them that meant the wall, which opened this morning, was a grid of blank squares, because this lab has only recorded a room at all since 03:46 the same day. What changed. For a groove that names no room, the lab now works one out from its own record of that groove, and it does it in two steps. First the words the genie itself wrote about that groove — the title and the review, which are the lab's own writing and are already public on the board — read against the same list of words the vibe box has always used to tell one kind of beat from another; the longest match wins, exactly as it does when you type into the box. Then, only if those words name no kind at all, the tempo: the band it falls in, with one look at whether the kick lands on all four beats of the bar to tell a floor record from a broken one. That is the whole of it, and it is the same answer every time for the same groove. What it is not. It is not anything you typed. A board post holds no words a visitor wrote — that has always been true here, and it is what makes reading a post's own words safe at all — and the routine that works the room out takes exactly four things: two sentences the genie wrote, a tempo, and a grid. There is no fifth. What still gets no picture. A room the lab's die rolled for you, and a room nobody named that the genie's own reading fell back to. Those are accounts of a room nobody chose, and a picture painted confidently from a coin flip is worse than no picture; nothing about them changed today. And three things on the page. The drawn blank is redrawn: it was twelve small squares around the edge of the box with a thirteenth in the middle, which read as something broken, and it is now the sleeve's own square with a faint record inside it, shown while a picture is on its way. A card whose groove will never have a picture shows an EMPTY square instead — the box itself, its own panel and edge, with nothing drawn in it — where a grey placeholder used to be. (Corrected in a later release the same day: the first cut of this took the square away altogether, and taking it away moved the review you were reading, and every button under it, by 116 pixels every time the board turned to a groove that had a picture — measured on a phone-width screen with the card in view. The square stays, and stays empty, so the square itself never moves the words beside it: turning from a groove with no picture to one that is still being painted moves nothing at all. A groove that HAS a picture is still a taller card, by the one line under it naming the model, the steps and the recipe that made it — that line is a receipt, and we would rather the card grew by it than hide it. On the wall, where a tile has no caption to say which it is, the drawn blank is still what an unpainted tile shows.) And tapping a tile on the wall now also brings that groove onto the board card and stops the card turning itself over, so you can ✦ nice it, hear its review or follow where it came from without hunting the rotation for it. The page-size row above moves to about 476 KB (475,994 bytes served at this release, up 1,427 from the 474,567 the note of 09:40 above measured — the redrawn blank is smaller than the one it replaced, and the words around it are the rest).

Addendum, 2026-09-07 18:45 (UTC) — this note is about five sentences on this page that stopped being true over the course of the one day the board's pictures were built, and about the page-size row above. What is being described here: the rules this page states about which grooves get a picture, what the card and the wall show when one does not exist, and what the painting costs. The window is a single day — 2026-09-07, from the first of these notes at 03:46 UTC to this one at 18:45 UTC — and the note of 2026-09-07 13:10 above is the last one before it, so what follows is the difference between what that note left standing and what the lab actually does. It comes out of a review that read this page against the code, with an independent reader trying to refute each finding; these are the ones that survived, and each is fixed in the sentence it belongs to rather than only here. Which grooves are eligible for a picture. The body above said that only a groove whose family a person named is painted. That stopped being true on the afternoon of the same day, when the lab began working a family out for a groove that named none — by then most of the board. The body now states ELIGIBILITY rather than outcome: a family a person named, or one the lab worked out, and not a family the die rolled, not one the vibe box fell back on because nothing you said named one, and not a groove that records no family at all. Being eligible and having a picture are two different facts, and they always were: a picture can be on its way, can have failed, can be switched off for everybody, or can have been taken down by us. What the card shows when there is no picture. The note of 13:10 above said the card keeps an empty square rather than a grey placeholder, and that stands. What was still wrong above it was the body of the page, which promised a drawn blank both for a groove that will never have a picture and for one whose picture we took down. On the card those two show the empty square. The drawn blank has two homes: the card while a picture is on its way, and any unpainted tile on the wall, where there is no caption to say which state a tile is in. The button that opens the wall. The body described it as simply being there under the card. It is not: it appears the first time this page has actually seen a groove that has a picture, and once it has appeared it stays for the rest of the visit. On a board with no pictures on it there is no button at all, and nothing above said so. What the painting costs. The note of 09:40 above reads as though twenty-four pictures a day were the whole of what one address could ever cause. It is not a total. It paces the picture made in the seconds after a post goes up; a post it turns away keeps its blank and is picked up by the catch-up pass within the hour, and that pass spends four hundred a day of its own. The correction is written into that note, beside the sentence it corrects. The fifth kind of family, on the page itself. The lab has recorded a worked-out family since 13:10, but the page did not know that word, so a groove taken off the board arrived in your machine as a groove with no family at all. It knows it now, and has since v0.54.0. Nothing looks different — the label over the box names a family only beside a tempo the genie read, and a groove loaded from the board carries neither — but the account of where that groove's room came from survives the trip, which is the whole reason the record holds it. The page-size row above reads about 478 KB now (478,130 bytes served, measured at v0.55.0 on 2026-09-07, up 2,136 from the 475,994 the note of 13:10 above measured at v0.52.0 — the square the card now always reserves and the wall's own gate are between them the bulk of it).

Addendum, 2026-09-07 21:55 (UTC) — this note is about what a groove remembers about the ROOM it was built in once it leaves your screen — a reload, or a link you send somebody — which changed in v0.57.0, and about the page-size row above. What is being described here: the family the lab records for a groove (one of eight — house, techno, trap, lo-fi, boom-bap, break beat, drum & bass, funk) together with the one word for how that family was chosen, and whether that record survives the tab closing. The window is the single day these rooms were built: 2026-09-07, from the note of 03:46 above, where a groove first began recording which room it was made in, to this release at 21:54 UTC — the note of 18:45 above is the last one before this one. What was wrong. The lab knew the room only while the tab stayed open. Ask for a techno beat, reload the page, and the groove came back with its name and its notes and no room at all — the machine genuinely no longer knew — and if you then put it on the board, the lab worked a room out for itself from the genie's own words about that groove (the note of 13:10 above is that working-out) instead of recording the one you had actually asked for. A link you sent somebody lost it the same way. What changed. The room, and the one word for how it was chosen — you named it, the die rolled it, nothing you said named one, or the lab worked it out for itself; five such words in all, counting the one that means no room at all — now travel with the beat: in what the page saves on your own device, and in the part of a share link after the #. Reload the tab and the room you asked for is still the room; put the groove up an hour later and the board records what you said rather than what the lab worked out. ↩ Back already carried it and still does. What does not travel, and what does not move. Nothing you typed: what rides along is one of the eight ids this lab maps every word onto, and one of five words for how it got there — never your wish, never a sentence of yours. What the lab's server receives when a groove goes up is unchanged, byte for byte, from what it received yesterday, and so is the fingerprint that identifies a groove — the thing every seal is over — so every link ever sent still opens the same beat it always did, and every groove already on the board is still the same groove. A link made before today, or one made by a page too old to have heard of rooms, simply says nothing about a room, which is exactly what is true of it. One thing this changes about pictures. A groove whose room nobody named — the words fell back to house — or whose room the die rolled has never been given a painted picture; the notes of 13:10 and 18:45 above both say so. But until today a reload wiped the room, and a groove that arrives naming none is one the lab works a room out for, which is a kind that IS painted — so reloading the tab before putting such a groove up quietly earned it a picture that the same groove posted without a reload never got. It no longer does. What the page remembers is now what was true of the groove either way, which is the rule those two notes state. The page-size row above stays at about 478 KB (478,511 bytes served, measured at v0.57.0 on 2026-09-07, up 381 from the 478,130 the same measurement gives at v0.56.1 — the two fields, the eight-family list the clamp now reads, and the paragraphs explaining them. That is the same number the note of 18:45 above measured at v0.55.0: the page itself did not move between those two releases, only its version string, so the two readings are one reading.)

Addendum, 2026-09-07 23:50 (UTC) — this note is about two things a visitor watched go wrong on the live board this evening: a picture that never appeared until the card turned, and a groove that went onto the board with no name on it. What is being described here: what the small square on the board card does while it says painting, and which of the genie's names a post carries when there is more than one to choose from. The window is one evening — 2026-09-07, from the release the note of 21:55 above dates to this one — and that note is the last one before this. Both were reported from the real site rather than found by a test, and both are fixed in v0.58.0. The picture that would not arrive. The square on the card has said painting since the note of 06:30 above, and until now the only thing that could replace it with the picture was the page re-reading the WHOLE board, which it does once a minute, and then happening to repaint the card. A picture is painted in about two seconds. So a visitor sat looking at the word painting for up to a minute over a picture that already existed — and on the one card that matters most, the card that appears the moment you put your own groove up, it never appeared at all, because that card was deliberately built not to ask for a picture. What happens now: while the square says painting, the page asks our server about that one post four times, waiting a little longer between each — three seconds, then six, then twelve, then twenty-four, so the last of the four is about three quarters of a minute in — and the picture takes its place the moment it exists. After those four it stops for that groove for good — for the whole visit, not just until the card comes round again — and leaves the word there for the next minute's ordinary refresh to answer, so nothing here runs on and on in a tab somebody left open. It is a read of one post, the same public record anyone can ask for: it asks nothing of any model, it costs no wish, and it does not touch the genie's allowance or its rest. Nothing else on the card moves while it happens — the card does not turn, the page does not scroll, the review you are reading stays where it is, and the square was already exactly the size of the picture, which is what the note of 13:10 above is about. If the card turns, or the post leaves the board, the asking stops with it. The wall's own tile takes the picture at the same moment, if the wall is open on it. And the card that appears when you post is no longer the exception: it still never guesses at a picture, but the moment a real record names one, it shows it. The groove that went up unnamed. The genie can name a beat two ways — you ask it to, with name it ✦, or a reading names the beat it read — and every name it gives is sealed for that exact beat, so a name cannot be moved onto a different groove. What happened: name a groove, then change a step, then ask for a reading, then put it up. The name you chose was sealed for the beat before the edit, so it could not travel; the reading's own name was sealed for the beat that was actually on screen, and the page had thrown it away rather than keeping it; and the post went up with nothing. What happens now: at the moment of posting the page uses the freshest name the genie sealed for the beat being posted — the one you chose while it still covers that beat, otherwise the reading's — and it puts that name on the card before the post goes, so what you are looking at and what goes on the board are one name and never two. If neither can travel, the switch asks the genie for a name first, the same way it asks for a reading when there is none, and that is the same one wish. If the genie is resting at that moment nothing is asked of it and the groove still goes up, unnamed, exactly as it did before this release — a name has always been a bonus rather than a condition, and the card's own word for a groove with no name is the one it has always used. One more road to the same ending is closed with it: a name and its seal now survive a reload of the tab, where before the name came back and the seal did not, so a groove you named, came back to and put up an hour later went up unnamed too. The seal rides what this browser saves for itself and nothing else — a link you send somebody carries the name to read and no seal, because a seal is issued for a beat and must not let the far end post under this genie's name. The page-size row above reads about 485 KB now (485,547 bytes, measured on the poured page at v0.58.0 on 2026-09-07, up 7,036 from the 478,511 the note of 21:55 above measured at v0.57.0 — the asking, the tile's repaint, the name the page now keeps and the paragraphs of this page that are inside the lab's own answers).

Addendum, 2026-09-08 02:20 (UTC) — this note is about ONE new button on the page and where it is, and about the page-size row above. What is being described here: the wall — the grid of the board's newest forty-eight posts that the note of 2026-09-07 08:15 above introduced — and which controls on the page open it. The window is a few hours: 2026-09-07 23:50 UTC, where the note above this one ends, to this release at 02:22 on 2026-09-08. Nothing about what the wall IS has changed, and no number in it has moved. What was awkward. The wall's button lives on the board card, which is the bottom of the page. The card the genie writes about your own beat is near the top, and on a phone the two are a screen and a half apart — so the moment a visitor is most likely to want the wall, which is the moment they have just put a groove up and are looking at their own card, was the moment the wall was furthest from their thumb. What is there now. A second button, ▦ the wall, on that card's own row beside ✦ put it on the board. It opens the same grid, by the same path, and travels down to it; it appears in lockstep with the button under the board card and, like it, stays for the rest of the visit once it has, so the two can never disagree about whether there is a wall worth opening — which means it is not there at all until this page has seen a groove that has a picture, exactly as the note of 2026-09-07 18:45 above describes for the older one. It costs nothing: it asks no model anything, spends no wish, and fetches nothing until it is tapped, which is the same bargain the wall has always made. Two small differences from the button below, both deliberate. From up here a second tap takes you to the wall again rather than shutting it — a section closing two screens down is not something you can see happen from the card you are looking at — so the wall's own close ✕ is what puts it away. And for anyone reading with a keyboard: opening it moves the caret to the wall's own heading, so the reading position travels with the page, and closing the wall puts the caret back on whichever of the two buttons opened it. The page-size row above reads about 489 KB now (488,580 bytes served, measured on the poured page at v0.59.0 on 2026-09-08, up 3,033 from the 485,547 bytes the note of 23:50 above measured at v0.58.0 — bytes ÷ 1,000 and rounded, which is the arithmetic the lab's own size check runs; the row above now carries v0.58.0 as well, at 486 KB, and the note of 23:50 writes that same 485,547 bytes as 485 because it rounded the other way — one measurement, two ways of shortening it, and the byte count in both is the thing to read). One button and the writer that shows both of them at once are a small part of that; most of it is prose. This page ships its own reasoning inside it — the rules it lives by are written beside the lines that enforce them — and about two thirds of this release's growth is two such notes being brought up to date: the record of what a fourth button costs the row it joined, and the corrected reason for one attribute this button deliberately does not carry.

Addendum, 2026-09-08 05:06 (UTC) — this note is about the genie's door going back to its everyday setting, which the note of 2026-09-04 10:03 above promised to date. From 2026-09-04 10:01 (UTC) to 2026-09-08 05:06 (UTC) — the long weekend — one network address could have six wishes at once and four hundred and eighty a day, so a room on one wifi was not one visitor's countdown. At 05:06 on the 8th the door went back to what the body above says: three wishes in any thirty seconds, a hundred and twenty a day, per address; the shared ceiling never moved. Nothing else on the page changed with it. The window was a setting on the web server's own unit, not code, and it is gone the way it came — which is also why the receipt for it is a line in the server's journal reading gate 3/30s + 120/day per IP at that minute, and not a release.

Addendum, 2026-09-08 10:31 (UTC) — this note is about a round of small interface repairs, and it says what a visitor meets differently because of them. The window is 2026-09-08 03:00 to 10:31 (UTC), between Beat Lab v0.60.0 and v0.61.0; nothing about how the genie works, what the board keeps, or what leaves your device changed, and the numbers table above is unaffected except for the page-size row, dealt with at the end of this note. The wall — the grid of the newest grooves — is now one stop for the Tab key instead of forty-nine: you arrow around the tiles the way you would a grid, Home and End reach the ends, Escape puts the wall away when you are inside it, and there is a second close ✕ at the far end of the tiles so you no longer have to travel eight thousand pixels back to the first one. The wall's count line now names every groove of yours on screen, not only the ones it had to go and fetch — if the groove you posted is already among the newest, it is counted. Five things that were quietly animating at rest now stand still if you have asked your device for less motion, and the dust that draws a review in finishes within about four seconds however long the review is, rather than taking six on a long one. The blank record sleeve — the drawn square a groove with no picture wears — is darker and reads clearly in both themes, and so does the thin edge around it. The buttons under a board groove are taller: ▶ listen now, 🔈 hear the review, ✦ nice, another ↻ and the wall's close ✕ all clear the 44-pixel target the rest of the page has cleared since the phone pass, as do ✎ tell the workshop and the ✕ that shuts the share sheet and the four-step card. On a phone the four buttons under the genie's card sit as two rows of two rather than a ragged stack, the vibe box asks your keyboard for a go key instead of a bare return, and remix of a board groove reads as a phrase in its line of facts again rather than as a button-shaped slab. The page-size row above reads about 509 KB now (509,339 bytes served, measured on the poured page at v0.61.0 on 2026-09-08, up 18,828 from the 490,511 bytes the same measurement gives at v0.60.0 — bytes ÷ 1,000 and rounded, which is the arithmetic the lab's own size check runs; the row above now carries v0.60.0 as well, at 490 KB, which no release note had recorded). Almost none of that growth is new behaviour: this page ships its own reasoning inside it — the rules it lives by are written beside the lines that enforce them — and most of this release is those notes being written and brought up to date.

Addendum, 2026-09-09 (UTC) — this note is about what the lab may do with a beat put on the public board, changed between v0.63.0 and v0.68.0, 2026-09-08 23:42 to 2026-09-09 22:09 UTC. Before, the page said what the board takes and nothing about later use; now a line under the board switch says beats put up here may one day teach the machine that writes them, each post carries the version of that notice its page showed, and taking a post down also takes it out of any future training set. Nothing about anybody is kept by any of this, no such model exists yet, and the size row above was re-measured at the same release, about 526 KB.

elsewhere in the workshop

a strata→signal property · hello@strata2signal.com · say hello