RSS

// Revisiting Old Experiments

Old experiments nobody asked for sit on the site, forgotten. Two of them just got asked for at once.

CLI Personality, four numbers I tuned by feel back in 2024. SAM, a browser replica of a 1982 text-to-speech program, built earlier this summer. Both turned up again while building my site’s self-hosted AI search assistant.

Also: a Random Walk toggle, and why a plain-text answer can have a temperament and a voice.

This blog post was generated automatically as a byproduct of working in partnership with my self-hosted AI assistant.

The original idea was small. A command-line interface has no colour, no type, no layout. Copywriting can carry some brand personality through that. I wanted to know what else could. So I built a page with four sliders: how long between characters, how long between words, how long between paragraphs, and how much randomness to let creep into all three. Type some text in, watch it appear at whatever rhythm the sliders described. That was the whole thing.

It answered the question and then did nothing else. A working demo with no home to go to.

Yesterday I built an Ask box for this site. Type a question, a self-hosted model reads the pages here and answers from them, no external API involved. The first version worked fine and felt like every other chatbot reply: the whole answer, dumped on screen at once, cold. It needed the thing the 2024 prototype had already solved and never got to use.

I used the tool I’d built to find a setting I liked. Thirty-five milliseconds a character. Two hundred and sixty-three after a space. Five hundred at the end of a sentence. A “random walk” swing of plus or minus a hundred and fifty-eight milliseconds, so no two letters land at quite the same interval.

The prototype’s Random Walk option came along too. Instead of a fixed swing, each of those values nudges by a small random step every time it’s used, drifting slightly over the length of an answer rather than repeating itself. It was a button on the old page, on by request and easy to forget existed. Here it’s just how the thing paces itself, no button required.

Then the answer got a voice. SAM is a browser replica of a 1982 Commodore 64 program called Software Automatic Mouth, that unmistakable cracked robot voice reading back whatever you typed into it. I built it as its own experiment a couple of months ago, with no real job beyond typing something in and hearing it talk. The Ask box has a Speech button next to it now. Toggle it on, and SAM reads the answer out loud in its own default voice, same engine, nothing rebuilt.

A toy stops being a toy the moment something real needs what it already does.

I'd love to tell you more. Let's work together.

// Node Based Tool Design

I spent an evening this week back in Max/MSP, patching boxes together on a canvas, watching numbers and audio move from one to the next in something close to real time.

A look at node based tool design: what it actually is, where you’ve probably already met it, the patterns that keep showing up wherever someone builds one of these, and why the same shape might be the best way to work with AI itself.

Also: modular synths, Mark Fell on why he builds his own tools inside Max/MSP, and why a shader node in Blender is doing the same basic trick as a mixing desk.

tone midi ch 1 osc~ 440.0 lfo 0.2 hz filter~ cutoff resonance gain~ -6.0 db dac~ reverb~ mix 0.3 // warm pad patch keep cutoff below 2k or it gets harsh