[racket] Small Racket-embedded dataflow DSP language
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.