Tonight (2026-03-13, 6pm): live show at aqb attic, Budapest, Hungary.
I'll be #LiveCoding #audio #dsp in #C using #clive
Tonight (2026-03-13, 6pm): live show at aqb attic, Budapest, Hungary.
I'll be #LiveCoding #audio #dsp in #C using #clive
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
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.
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.
#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)
Oliver! [1963]
1 print (poster) : lithograph, color ; 56 x 36 cm. | Poster for original Broadway production of "Oliver!" at the Imperial Theatre, showing drawing of a young boy's face.
#Oliver #Broadway #theImperialTheatre #DavidMerrick #DonaldAlbery #CliveRevill #GeorgiaBrown #LionelBarts #PeterCoe #Kenne #Music #MilionRosenstockk #IanAlberry #PeterCoes #LionelBart #Dickens #RCAVictor #lithographs #performances #american #brown #georgia #color #orphans #revill #clive #theatricalposters #photopgraphy #LibraryOfCongress
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