Tonight (2026-03-13, 6pm): live show at aqb attic, Budapest, Hungary.

I'll be #LiveCoding #audio #dsp in #C using #clive

https://mathr.co.uk/web/listening-technologies-aqb.html

Listening Technologies AQB :: mathr

Live in Budapest, 13th March 2026.

For Steve Carell and Charly Clive, it's OK to play messy in 'Rooster'

https://misryoum.com/us/lifestyle/for-steve-carell-and-charly-clive-its-ok/

Steve Carell knew from the moment he read alongside Charly Clive that she was the right person to play his daughter in the new HBO series “Rooster.”“I never felt like Charly was auditioning. It just felt like two actors...

#For #Steve #Carell #and #Charly #Clive #its #play #messy #Rooster #US_News_Hub #misryoum_com

For Steve Carell and Charly Clive, it's OK to play messy in 'Rooster'

Steve Carell knew from the moment he read alongside Charly Clive that she was the right person to play his daughter in the new HBO series “Rooster.”“I

US News Hub

one of the reasons I switched from #puredata to #c #clive for #livecoding music was that it was too awkward to make simultaneous changes in multiple places at the same time - pd was "too live".

just now i had a sofa thought, use the clone object to have two copies of an abstraction, saving one reloads the other. but now the problem is back to "reloading discards internal state", so notreally any better.

i'm wondering now about how it might be to modify pd to support transactional patch editing, like display original patch ghosted with changes highlighted and a gesture to commit (or abandon).

but other things about pd like mousing patch cords bother me more now so this is more idle thought than anything I'll actually do.

🎉 Treasure hunters unite! The Original Big Indoor Garage Sale is BACK at Horizon Events Center in Clive! 9am-4pm. Free parking + food! Find your next gem! 🛍️ #GarageSale #Clive #ShopLocal
https://desmoinesinsider.com/events/the-original-big-indoor-garage-sale-2026-01-10
Des Moines AI Pulse - First Conversational City Guide | AI-Powered Recommendations

Beyond search. Beyond directories. Des Moines AI Pulse is the first truly conversational city guide. Access via web, SMS, voice, or ChatGPT. Context-aware intelligence that learns your preferences and proactively assists you.

Des Moines AI Pulse

#DecemberAdventure 3rd evening + 4th morning

got #clive audio engine working on #Bela with clive (cross-)compiler running on desktop in a Debian Stretch chroot (matching the version of the Bela base system). very long setup instructions now in the README.md at

git clone https : / / code.mathr.co.uk / clive-core.git

compilation on desktop is much quicker than compilation on Bela (even with sshfs transfer overhead), allowing for lower #latency response to code changes.

no #OpenSoundControl #OSC server yet, because no #C11 <threads.h> support - switching to pthreads would probably be more portable...

clive is my thing for #LliveCoding #audiio #DSP in the #C programming language

idea: put the Bela context and audio block index n into the state struct, so that clive audio callback code can access Bela I/O other than stereo audio in + out.

this would be a backwards incompatible change, need to see how to minimize disruption... possibly it would be a good time to also expose the underlying block-based processing to the clive.c code, so that it can be inlined/loop-unrolled/etc for better runtime efficiency.

#DecemberAdventure 2nd: morning

did a fair amount of work on #clive, combining the separate client (compiler) and server (audio + osc) into one program, renaming lots of things to be more consistent.

the main advantage of this change is that the audio part can tell the compiler what the audio engine's sample rate is, so no need to define it by hand in the `live/clive.c` file (previously `client/go.c`.

I tagged as v1 the version before all these disruptive changes.

Summary of user-facing changes in the last couple of days:

```diff
diff --git a/client/go.c b/live/clive.c
index 84f7163..0b65cae 100644
--- a/client/go.c
+++ b/live/clive.c
@@ -1,13 +1,12 @@
typedef float sample;
-#define SR 48000
-#include "dsp.h"
+#include <clive.h>

-typedef struct
+struct clive_state_t
{
int reloaded;
// state
-} S;
+};

-int go(S *s, int channels, const float *in, float *out, events_t *events)
+int clive_audio(clive_state_t *s, int inchannels, const float *in, int outchannels, float *out, events_t *events)
{
if (s->reloaded)
@@ -25,5 +24,5 @@
// output
- for (int c = 0; c < channels; ++c)
+ for (int c = 0; c < outchannels; ++c)
```

and run ./bin/clive.sh instead of ./launch/local-native-sse.sh

#DecemberAdventure 1st: afternoon

fixed up some almost-finished things in #clive (my thing for #LiveCoding audio in the #C programming language), namely separate in/out channel counts. Still hardcoded at build time in `server/config.h`.

at the moment:

jack: 2 in 18 out (currently set up for first 2 stereo, last 16 to exwhyscope for debugging)
portaudio: 0 in 2 out
sdl2: 0 in 2 out
stdio: 0 in 2 out

I put a prototype in the dsp.h header so that these changes will fail at build time instead of crashing. this also means client user code needs to change from

typedef struct { ... } S;
int go(S *s, int channels, const float *in, float *out, event
s_t *events) { ... }

to

struct S { ... };
int go(S *s, int inchannels, const float *in, int outchannels, float *out, event
s_t *events) { ... }

all branches in the clive-core repository are now up to date.

```
git clone https : / / code.mathr.co.uk / clive-core.git
```

(no web access any more due to bad robots, but the git tool should still work)

seems I managed to get #OSC input working for #clive (for #LiveCoding in the #C programming language)

git clone -b osc https :// code.mathr.co.uk / clive-core.git

I wrote my own ringbuffer to communicate between the osc server thread and the audio dsp thread, and a simple scheduler (doubly linked list sorted by event time). network server is based on manual page for getaddrinfo.

the live-editable per-sample callback now gets a list of events scheduled for that time point (usually empty). each event contains an osc message, which you can parse with #rtosc (or any other method). need to add some helpers for parsing key-value messages as it's a bit verbose at the moment.

need to fix up godwit's scheduler and osc sender to support arbitrary fields, so I am not limited to dirt vocabulary. and use a different port to dirt so both can run at the same time

One of the things that finally pushed me over the edge into releasing my new font Clive https://drj11.itch.io/clive-font was coming up with the name. For a couple of years it had been called "ZXShade". It's not unusual to name fonts after people, but i feel that they are often aspirational and femme coded. Like Amelia, or Victoria. No one really names their fonts with boring white-man names, like Clive. So once i had the idea, i had to use the name. (though, counterpoint: Gary and David exist). #clive
Clive Font by David Jones (CubicType)

A font made from Yorkshire-grown ZX81 semigraphics by David Jones

itch.io