Hi Pd devs,
been cleaning it up a bit. still quite raw in the details, but it
basically works.
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.
some docs at http://zwizwa.be/rai
For headless Windows VST plugin: "make synth.dll"
This needs a Linux->Windows cross compiler; follow the error messages.
Cheers
Tom
On 05/14/2013 12:18 PM, Tom Schouten wrote:
Hi Pd devs
Is there anyone here interested in Functional Programming and C code
generation for DSP code?
I'm working on a system for DSP code development based on the principle
of Abstract Interpretation
http://en.wikipedia.org/wiki/Abstract_interpretation
Basically, it will allow several interpretations of a single
specification program:
- specification as a pure functional program
- imperative C code generation (for passing to C compiler or LLVM)
- Z transform for frequency plots of (linearized) transfer function
- automatic differentiation for all kinds of derivative-based tricks
- ...
It is written in Racket
http://racket-lang.org/
It's starting to get to a point where it is actually useful (there is a
basic synth core) and could use some feedback, but please note it is
very experimental and still needs a lot of work. Familiarity with Racket
is probably a prerequisite at this point to make sense of it. Current
code is here:
http://zwizwa.be/darcs/meta/rai/
It is part of a darcs archive that can be fetched using
darcs gethttp://zwizwa.be/darcs/meta
I use Pd for most of the experiments.
There is a generator for Pd externs, and a "live coding" reload mechanism
that can reload recompiled processing code without messing up internal
state,
as long as the types are compatible.
Cheers
Tom
_______________________________________________
Pd-dev mailing list
Pd-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev
_______________________________________________
Pd-dev mailing list
Pd-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev