[PD] Bandlimited waveforms

Frank Barknecht fbar at footils.org
Sun Dec 2 15:19:27 CET 2007


I studied the final chapter of Miller's book a bit deeper during the
last days. It contains this interesting and sophisticated method of
bandlimiting classical waveforms using transition splicing [1]. The
docs contain an example, J09.bandlimited.pd, which I transformed into
an abstraction, [splicetrans~], in the process I modifyed the
calculations to work with samplerates different from 44.1 kHz and kept
a normal rising phasor from 0-1 as signal instead of a falling
sawtooth from 0.5 to -0.5 as in the example.

That was basically copy/paste work. The interesting thing then is to
use this new phasor to construct other waveforms like square or
trapezoid waves using the methods described in the last chapter as

These all involve some phase-shifted phasors created using [wrap~].
But to use the transition-spliced phasor~ as source for these waves,
care needs to be taken in the placement of the [wrap~]s compared to
the phasor, otherwise all bandlimiting effort will be in vain because
[wrap~] cuts off the transition in the wrong place. But once you get
the hang of it, it's actually quite easy: Always [wrap~] *before* you
do the transition splicing. 

This approach has one big advantage over bandlimiting with
pre-calculated wavetables as realized in some old patches by Guenther
Geiger and newer ones by Roman: The waveforms can be changed on the
fly, for example to do PWM on a rectangle wave, which is hard or
impossible with pre-calculated bandlimited waveforms.

As this technique wasn't really discussed on this list so far AFAIR, I
just attached the patches for everyone who's interested in it to try
and of course to comment and squash bugs. 

[1] http://crca.ucsd.edu/~msp/techniques/latest/book-html/node196.html

 Frank Barknecht                                     _ ______footils.org__
-------------- next part --------------
A non-text attachment was scrubbed...
Name: splicetrans~-help.pd
Type: application/puredata
Size: 6467 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20071202/7198bad9/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: splicetrans~.pd
Type: application/puredata
Size: 3539 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20071202/7198bad9/attachment-0001.bin>

More information about the Pd-list mailing list