# Shepard and pitch shifting (+a request for digital allpass filter design help)

Rene Schmitz uzs159 at uni-bonn.de
Fri Sep 18 02:30:46 CEST 1998

```At 23:25 16.09.98 -0700, you wrote:
>A few random thoughts on the subject:

>I have a sneaky suspicion that phase-differencing allpass networks are
>the key to some pretty nifty stuff.  On that note, anyone have any idea
>on how to design digital allpass filters with specific pole
>frequencies?  I understand the basic idea of allpass filters in the
>digital realm (feedforward/feedback), and have a table of the pole
>frequencies/positions needed (from Electronotes #43 - lots of good
>phase-differencing network theory there).  I just need a way of figuring
>out the coefficients.  I'm not too good with digital stuff yet.  Who
>wants to help? My end goal is to create a barberpole phaser in Csound,
>and I need the phase-differencing network in order to do it (it has to
>be allpass based - apparently FIR Hilbert transforms have too much group
>delay to generate the barberpole effect properly).  Any tips, or
>literature pointers, or advice along the lines of "learn this first, and
>go from there" will be greatly appreciated.

Well if you go along the digital realms you can compensate the groupdelay
with a second delayline. If you use a FIR with n samples delay you can get
the
hilbert transform of a signal that is delayed by n/2 samples. So this would
allow implementation of a frequency shifter in the digital domain. If you
also implement a DCQO (digital controlled quadrature...) and multipliers.
I have somewhere a how-to on calculating the filter coeffs but I need to dig
it up so this is from memory. One thing is that you have to use a big
number of coeffs to properly approximate the H(s) over a large frequency
range.

Anyway one way digital filter design (as far as I have seen it in the
books, I'm really not knowing what I'm talking here ;-) starts with the
phase and amplitude relations that you want and then doing FFT (or IFFT ??)
to get the coeffs.

Bye
-Rene
==(uzs159 at uni-bonn.de)=========================
,          :
|") [" |\ | ["          :   This space
|"\ [_ | \| [_          :   intentionally
:   left blank
:
==(http://www.uni-bonn.de/~uzs159)=============
=(Mirror=http://members.xoom.com/Rene_Schmitz)=

```