[racket] Small Racket-embedded dataflow DSP language

From: John Clements (clements at brinckerhoff.org)
Date: Thu Jun 27 14:15:31 EDT 2013

On Jun 12, 2013, at 9:24 AM, Tom Schouten wrote:

> On 05/30/2013 08:21 PM, Tom Schouten wrote:
>> On 05/30/2013 05:30 PM, John Clements wrote:
>>> On May 30, 2013, at 1:21 PM, Tom Schouten wrote:
>>> 
>>>> Hi List,
>>>> 
>>>> Here's a tiny experimental tool I've been working on the last couple of months:
>>>> http://zwizwa.be/rai/rai.html
>>>> 
>>>> It's mostly aimed at the music DSP world (sound synthesizers and effects) where feedback structures are very important, but it could be fairly generic in its use.  I tried to stay as close to Scheme as possible.
>>>> 
>>>> The basic idea is to use Racket as replacement for Matlab, i.e. to analyze algorithms specified in a high level format, and use it to generate dependency-free C or ASM code for deeply embedded targets.
>>>> 
>>>> Currently it can generate binary plugins for Windows VSTi, Pure Data and Jack Audio.
>>> This looks totally awesome.  Would you consider making a Racket Package out of this? My fall class could definitely be interested.
>> 
>> 
>> Cool :)
>> 
>> Here's the package:
>> raco pkg install github://github.com/zwizwa/rai/master
>> That will run all the Racket code.
>> 
>> For the C code gen, the Makefile is the best point of entry.
>> Currently Linux only, and might need some tweaking.
>> 
> 
> added synth-lib.rkt basic synth kit and synth.rkt example synthesizer.
> 
> - envelopes
> - parameter control dezippers
> - parameter control scales (exponential, "squashed" exponential, ...)
> - SVF filter
> - supersaw osc
> - anti-aliased saw osc
> - saturation functions
> - FDN reverb tail
> 
> How I use it at this time, Linux + Pd:
> 
> make sp_host.pd_linux # build binary Pd wrapper
> pd sp_test.pd & # run Pd patch built around sp_host
> make livecode # continuously compile synth.rkt -> synth.sp binary module
> 
> then edit synth.rkt or any of its dependencies and the binary code running in Pd will be updated, leaving state intact if the type didn't change.

Very cool.

If only my students weren't all running windows….

John



Posted on the users mailing list.