[PD] Spectral Synthesis

Tom Schouten doelie at zzz.kotnet.org
Fri Jun 20 15:58:49 CEST 2003

On Friday 20 June 2003 14:37, julien.breval at tremplin-utc.net wrote:

hi julien,

creb (http://zwizwa.fartit.com/pd/creb) has some extra objects to do spectral 
synthesis, with the ability to do separate pitch and timbre synthesis using 
the dynwav~ object. 

dynwav is like tabread~, only it uses a dsp buffer as the wave table. you can 
set it's size using the block~ object. this is not really necessary, but it 
eliminates the need to use an array. it also interpolates between 2 
successive buffers, so you don't need to care about overlap adding either.

there are some other objects you can use 

* diag~ and bdiag~: diagonal and block diagonal state space systems, to 
generate spectral data.

* bfft~ / ibfft~: a (normalized) (i)fft with a different data ordering than 
pd's rfft~: (DC, NY, 1R, 1I, 2R, 2I, ...) the different ordering works better 
with diag~ and bdiag~. (if you combine bdiag~ with ibfft~ you get a form of 
scanned synthesis / additive synthesis hybrid). also, if you send a 
continuous signal (i.e a sine) as a spectrum, this ordering is easier to use 
if you don't care to much about the phase of the sines.

* dwt~ / idwt~: periodic biorthogonal interpolating wavelets. can be used 
instead of fft to build the spectra.

* fblock / tblock: these are abstractions to create spectra using osc~ or 
phasor~ or similar objects. it enables you to set the number of oscillations 
in a buffer and the shift (drift) of the waveform independently. i.e. to 
construct a comb filter effect.

hope this is useful,


> Hi everybody
> (
> I have just suscribed to this mailing list. I have used Pure Data for about
> 4 months (and GEM sometimes), for various applications, under Linux and
> Windows. )
> I have a question about spectral synthesis.
> I saw a patch (in Miller Puckette's book, " Theory and Techniques of
> Electronic Music ") that performs spectral synthesis like this :
> there is a bank of sine oscillators, and the amplitude of each sine is
> controlled by a graphic array.
> I tried to do this a bit differently before, using rifft~ and a graphic
> array. The idea was to resynthesize a sound from spectral data directly
> drawn in the array, unfortunately it didn't work. Maybe rifft~ works with
> rfft~ only ? I started from a classic analysis / resynthesis patch and used
> the resynthesis only.
> Has anyone managed to do (re)synthesis (without any actual analysis : the
> result of the analysis is drawn directly in an array) with rifft~ ?
> Thank you very much
> Julien
> _______________________________________________
> PD-list mailing list
> PD-list at iem.at
> http://iem.at/cgi-bin/mailman/listinfo/pd-list

More information about the Pd-list mailing list