[Pd] Spectrum a whole bunch of times

Chuckk Hubbard badmuthahubbard at gmail.com
Wed Apr 12 07:53:52 CEST 2006


On 4/11/06, Frank Barknecht <fbar at footils.org> wrote:
> Hallo,
> Chuckk Hubbard hat gesagt: // Chuckk Hubbard wrote:
> > The way I'm conceiving of this, though, each of the 20 note
> > abstractions would require 30 oscillator abstractions...
> >
> > Any chance of that happening in real time?
>
> 600 naked [osc~ 100] objects on my machine work in realtime, however
> it sucks about 75 percent of the CPU ("Intel(R) Pentium(R) M processor
> 1.60GHz").
>
> Basically you are doing additive synthesis here, which you can do it
> two or three ways. One is the oscillator bank as used in the example
> patch. This is very flexible but also very demanding. It normally is
> used when you want to independently control the amplitude and/or
> frequency envelope and phase of every partial during the course of the
> note. Another possibility to do it is resynthesizing with an inverse
> Fourier transform, which can be less demanding, but you loose some of
> the flexibility of the oscillator bank approach.
>
> The cheapest route to go is to build the partial table in advance with
> "sinesum" and then just use one [tabread4~] per voice. If your partial
> setup doesn't change while a note is playing this would be the way to
> go. Instead of "sinesum" you can also built other kinds of wavetables
> by writing them manually with e.g. [expr].

This is what I did originally, and I devised an intricate system so
there was only one set of oscillators, and it wrote to whichever array
was being edited.  At least I thought it was intricate.
I now have the exact same system, but the tabread~ is controlled by
those spectrum-table-reading oscillators (now phasors).  So if I want
pure spectrum-reading, I put a sinewave in the graph; and if I want
pure table lookup, I put a constant in the spectrum table.  My PC is
fast enough to handle it, but the school's Macs are having a hard
time.

I am really in love with the sound of FOF and am interested in
CPU-cheap ways to do it in Pd.

-Chuckk




More information about the Pd-list mailing list