[PD-announce] gendy~ PD + Max/MSP object and libgendy 0.6.0 released

Spencer Russell spencer.f.russell at gmail.com
Mon May 17 17:09:17 CEST 2010


Hi Pd-ers,

I've been working off and on for a bit on a C++ library to implement a
variant of Dynamic Stochastic Synthesis, a technique developed by
Iannis Xenakis. For a great history and more details of the original
algorithm check out Sergio Luque's thesis [1].

The library is still pretty rough around the edges and more or less
completely undocumented, but the PD object that uses it should be
pretty functional. Included with the code is a helpfile as well as a
gui that should make it pretty easy to jump right in.

The basic idea of DSS is to describe a waveform with a set of
"breakpoints" and interpolate between them to generate the actual
audio signal. The set of breakpoints forms a single cycle of a
waveform, and each time one cycle gets played, the breakpoints each
move for the next cycle. So each breakpoint traverses a
two-dimensional random walk.

One improvement I've made to some traditional DSS implementations is
the use of cubic spline interpolation instead of linear, which
improves the aliasing considerably. It's not a truly bandlimited
signal, but is differentiable. "improves" is obviously subjective, and
linear interpolation is also available by sending a "linear" message
to the object.

The other modification is the introduction of selectable center
waveforms that the breakpoints will gravitate towards. Right now I
only have flat, square, and sine implemented, but I'm planning on
including basic triangle and sawtooth as well. The "h_pull" and
"v_pull" controls effect how much the breakpoints are pulled towards
the center waveform.

The external requires Thomas Grill's Flext library. Once you have it
installed simply run

FLEXTDIR/build.sh pd gcc

>From the base gendy directory (Where FLEXTDIR is the location of your
flext install) and you should have a shiny new binary in the pd-linux
directory. The arguments to build.sh will vary depending on your
system, as will the directory containing the binaries.

Please report any bugs to http://code.airwav.es/projects/gendy/issues/new


Downloads:

Source Tarball - http://code.airwav.es/attachments/download/4/gendy-0.6.0.tar.gz

x86_64 PD Binary - http://code.airwav.es/attachments/download/3/gendy~.pd_linux

You can also get the code with
git clone http://git.airwav.es/gendy.git gendy

[1] http://www.sergioluque.com/texts/luque_stochastic.pdf




More information about the Pd-announce mailing list