[livecode] livecoding DSP in C

From: Claude Heiland-Allen <claude_at_goto10.org>
Date: Tue, 21 Feb 2012 11:05:21 +0000

Hey there,

I've made a little skeleton for livecoding DSP algorithms in C. The
main program is a JACK client that polls a shared library (containing a
subcallback called by the main program's JACK callback) for changes, and
reloads it as needed. Another script polls a source file for changes
and recompiles it to a shared library as needed. Some memory is owned
by the main program, so reloading doesn't lose any state that the
callback in the shared library keeps there.

There are a multitude of race conditions that lead to silent gaps around
1 second if the recompilation coincides with the reloading and the
occasional segmentation fault if the callback is unloaded while the JACK
thread is running it. I initially tried using dlopen() twice and
delaying the dlclose() of the earlierly opened shared library, but it
seems libdl caches based on filenames without caring for timestamps or
file contents. And it's currently mono only, but that can be fixed more
easily, as can the almost complete lack of documentation.

Framework source code:

https://gitorious.org/maximus/clive

First public performance was this weekend:

performance git log (1em per second spacing between boxes)
http://claudiusmaximus.goto10.org/a/Claude%20at%20the%20Schip%202012-02-18.xhtml
(eventually this kind of output might be automated)

digital audio recording (68MB)
http://claudiusmaximus.goto10.org/a/Claude%20at%20the%20Schip%202012-02-18.flac

Thanks,


Claude
Received on Tue Feb 21 2012 - 11:06:23 GMT

This archive was generated by hypermail 2.4.0 : Sun Aug 20 2023 - 16:02:23 BST