[PD] efficient bank of sines

Ben Saylor bensaylor at fastmail.fm
Wed Dec 10 07:08:23 CET 2003


Hi,

Before you do, I've already made an external that does that (however, it 
requires the FFTW3 library and is hardcoded for 64 partials).  It's 
bandlimited (partials that would be above the nyquist are muted).

http://home.gci.net/~pamsaylor/ben/sosc~-0.1.tar.gz

Ben

On Tuesday 09 December 2003 4:57 pm, Tom Erbe wrote:
> thanks for all the good ideas... i will actually be writing an
> external tonight based on the table->rifft->tablelookuposc idea, as i
> think that will give me the best performance (and i do want
> frame-based control over all of the partials).
>
> On Dec 9, 2003, at 4:21 AM, Johannes Taelman wrote:
> > > On Monday 08 December 2003 12:52 pm, Tom Erbe wrote:
> > >>what's the opinion of the list as the most efficient method to
> > >> make a large bank of harmonically related sines (say 50-200
> > >> partials)? is it just a group of osc~, or phasor~ or something
> > >> else entirely?
> >
> > All really depends on how much control you want over it.
> >
> > If you only need to change the fundamental pitch and overall
> > amplitude, you just need to implement a wavetable synth, and
> > generate the appropriate wavetable, like Ben describes. Could also
> > be done with the sinesum (?) message to an array.
> >
> > If you need frame-based control over the individual amplitudes, you
> > can do the overlap-add ifft-synthesis with block~ and rifft~.
> >
> > If you need to change the spectrum only once in a while, you can
> > put the rifft~ and tabsend~ in a subpatch. Switch~ it off with
> > bang~, so it runs only once each time you switch~ it on.
> >
> > An improved version of this uses multiple wavetables and crossfades
> > between them so that there are no clicks when changing the
> > spectrum.
> >
> > If audio-rate control over the individual amplitudes and/or pitches
> > is required, you'll need osc~'s and a fast computer.
> >
> > Correct me if I'm wrong somewhere.
> >
> > BTW: Are those guard points still required for correct use of
> > tabread4~? How can we generate them elegantly when not generating
> > the wavetable with sinesum?
> >
> >  j#|@
> >
> >
> > _______________________________________________
> > PD-list mailing list
> > PD-list at iem.at
> > http://iem.at/cgi-bin/mailman/listinfo/pd-list
>
> ++++++++
> tom erbe . soundhack
> 608 carla way . la jolla . ca . 92037
> http://www.soundhack.com . soundhack at san.rr.com
> aim/ichat: thomaserbe
> ++++++++
>
>
> _______________________________________________
> 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